UVA 127 - "Accordian" 환자 (시 뮬 레이 션)
2439 단어 모방 하 다
#include <stdio.h>
#include <string.h>
struct _r {
char a[53][3];
int x;
}r[53]; //
//
void deal(int n, int s) {
int left = r[n-s].x;
int right = r[n].x;
for (int i=0; i<3; i++) {
r[n-s].a[left+1][i] = r[n].a[right][i];
}
r[n-s].x++;
r[n].x--;
if (r[n].x >= 0)
return;
for (int i=n; i<52; i++)
r[i] = r[i+1];
}
int main() {
while (1) {
scanf("%s", r[0].a[0]);
if ('#' == r[0].a[0][0])
break;
r[0].x = 0;
r[52].x = -1;
for (int i=1; i<52; i++) {
scanf("%s", r[i].a[0]);
r[i].x = 0;
}
bool flag = true;
int nCount = 0;
while (flag) {
int i;
for (i=1; r[i].x!=-1; i++) {
int left = r[i-3].x;
int right = r[i].x;
if (i>0 && (r[i].a[right][0]==r[i-3].a[left][0]
|| r[i].a[right][1]==r[i-3].a[left][1])) {
deal(i, 3);
flag = false;
break;
}
left = r[i-1].x;
right = r[i].x;
if (r[i].a[right][0]==r[i-1].a[left][0]
|| r[i].a[right][1]==r[i-1].a[left][1]) {
deal(i, 1);
flag = false;
break;
}
}
nCount = i;
// , while()
if (true == flag)
flag = false;
else
flag = true;
}
if (nCount > 1)
printf("%d piles remaining:", nCount);
else
printf("%d pile remaining:", nCount);
for (int i=0; r[i].x != -1; i++)
printf(" %d", r[i].x+1);
puts("");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
아 날로 그 예약 프로그램 (운전면허 시험)최근 한 달 넘 게 주말 내 내 차 를 연습 하 느 라 바쁘다.전에 시 뮬 레이 터 를 한 번 예 약 했 는데 갑자기 일이 생 겨 서 못 갔 어 요.다시 예약 하려 면 3 주 후에 줄 을 서 야 합 니 다.그래서 어...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.