1 条题解
-
0
C :
#include<stdio.h> #include<string.h> int main() { char c[50]; char str[10000]; char lost[5000]; int n,m,i,ii,iii,iiii,go,gogo,left; //n个床位,目前正在使用第m个,i是循环变量 while(gets(str)) { if(str[0]=='0') break; n=str[0]-48; m=0; left=0; iii=1; for(i=1;i<=n;i++) { c[i]='0'; } for(i=1;i<=50;i++) { lost[i]='0'; } for(i=2;i<strlen(str);i++) { go=0; for(ii=1;ii<=n;ii++) { if(c[ii]==str[i]) { c[ii]='0'; go=1; for(iiii=1;iiii<50;iiii++) { if(lost[iiii]!='0') { c[ii]=lost[iiii]; lost[iiii]='0'; } } break; } if(c[ii]=='0') { c[ii]=str[i]; go=1; break; } } if(go==0) { gogo=0; for(ii=1;ii<50;ii++) if(lost[ii]==str[i]) { lost[ii]='0'; left++; gogo=1; } if(gogo==0); { lost[iii]=str[i]; iii++; } } } if(left==0) printf("All customers tanned successfully.\n"); else printf("%d customer(s) walked away.\n",left); } return 0; }
C++ :
#include <iostream> #include <string.h> using namespace std; int bed[30]; int cus[30]; int main(){ int n, l, ans; string list; while(cin>>n, n){ cin>>list; ans = 0; l = list.length(); memset(bed, 0, sizeof(bed)); memset(cus, 0, sizeof(cus)); for (int i = 0; i < l; i++){ int num = list[i] - 'A' + 1; if (!cus[num]){ cus[num] = n + 1; for (int j = 1; j <= n; j++) if (!bed[j]){ bed[j] = num; cus[num] = j; break; } }else{ if (cus[num] > n){ ans++; cus[num] = 0; }else{ bed[cus[num]] = 0; for (int j = 1; j <= 26; j++) if (cus[j] > n){ bed[cus[num]] = j; cus[j] = cus[num]; break; } cus[num] = 0; } } } if (ans) cout<<ans<<" customer(s) walked away."<<endl; else cout<<"All customers tanned successfully."<<endl; } return 0; }
- 1
信息
- ID
- 3575
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者