#include<bits/stdc++.h> using namespace std; double f1; char s[2020],t[300]; int f[10000],k,a[100]; int main() { int T; scanf("%d",&T); while (T--) { memset(f,0,sizeof(f));memset(a,0,sizeof(a)); k++; printf("Case #%d: ",k); scanf("%s",s); scanf("%s",t); for (int i=0; i<26; i++) { if (t[i]=='h') f[i]=1; if (t[i]=='d') f[i]=2; if (t[i]=='w') f[i]=3; } int len=strlen(s); for (int i=0; i<len; i++) { a[f[s[i]-'a']]++; } f1=a[1]*1.0/len; if (f1>=0.25) { printf("Harmful "); } else if (f1<=0.1) { printf("Recyclable "); } else { if (a[2]>=a[3]*2) { printf("Dry "); } else { printf("Wet "); } } } }
#include<bits/stdc++.h> using namespace std; map<string,char>mp; string s,s1,ss,c[1000],c1[1000],a[1000000],S,ans; int main() { int T; mp["0000"]='0'; mp["0001"]='1'; mp["0010"]='2'; mp["0011"]='3'; mp["0100"]='4'; mp["0101"]='5'; mp["0110"]='6'; mp["0111"]='7'; mp["1000"]='8'; mp["1001"]='9'; mp["1010"]='a'; mp["1011"]='b'; mp["1100"]='c'; mp["1101"]='d'; mp["1110"]='e'; mp["1111"]='f'; scanf("%d",&T); for(int t=1; t<=T; t++) { printf("Case #%d: ",t); cin>>s; for (int k=0; k<8; k++) { s1=""; for (int i=0; i<4; i++) { ss=""; for (int j=0; j<4; j++) { ss+=s[k*16+i*4+j]; } s1+=mp[ss]; } c[k]=s1; } for (int i=0; i<8; i++) { c1[i]=""; int j; for (j=0; j<4; j++) { if (c[i][j]!='0') { break; } } if (j==4) { c1[i]="0"; } else { for (int k=j; k<4; k++) { c1[i]+=c[i][k]; } } } int cnt=1; a[0]=""; for (int i=0;i<8;i++){ if (i!=7){ a[0]=a[0]+c1[i]+":"; }else{ a[0]=a[0]+c1[i]; } } for (int i=0; i<8; i++) { for (int j=7; j>=i; j--) { int k; if (j-i+1>=2) { for (k=i; k<=j; k++) { if (c1[k]!="0") { break; } } if (k==j+1) { S=""; for (int l=0; l<i; l++) { S=S+c1[l]+":"; } if (i==0) { S=S+":"; } S=S+":"; for (int l=j+1; l<8; l++) { S=S+c1[l]; if (l!=7) { S=S+":"; } } a[cnt++]=S; } } } } int len=10000; ans=""; for (int i=0; i<cnt; i++) if (a[i].length()<len) { len=a[i].length(); ans=a[i]; } else { if (a[i].size()==len) { if (a[i]<ans) { ans=a[i]; } } } cout<<ans<<endl; } return 0; }
#include<bits/stdc++.h> using namespace std; int n,b[10000],v[100000],k,l,r; bool check(int x) { int f,t=0; for (int i=n; i>=1; i--) { f=0; for (int j=1; j<=t; j++) { if (b[j]+v[i]<=x) { b[j]+=v[i]; f=1; break; } } if (f==0) { b[++t]=v[i]; if (t>k) return 0; } } return 1; } int main() { int T; scanf("%d",&T); for (int t=1; t<=T; t++) { printf("Case #%d: ",t); scanf("%d%d",&n,&k); for (int i=1; i<=n; i++) { scanf("%d",&v[i]); } sort(v+1,v+1+n); l=v[n]; r=1000000; while (l<r) { int mid=(l+r)>>1; if (check(mid)) { r=mid; } else { l=mid+1; } } for (int i=max(1,l-60);; i++) { if (check(i)) { printf("%d ",i); break; } } } return 0; }
#include<bits/stdc++.h> using namespace std; int n,f[2010][2010],tt; int main() { int T; scanf("%d",&T); for (int t=1; t<=T; t++) { printf("Case #%d: ",t); scanf("%d",&n); if (n==1) { puts("Yes"); puts("0"); puts("1"); continue; } if (n%4==2||n%4==3) { puts("No"); continue; } puts("Yes"); if (n%4==0) { for (int i=1; i<=n/2; i++) { for (int j=1; j<=n; j++) { tt=i+j; if (tt>n) { tt-=n; } f[tt][j]=j&1; f[j][tt]=j&1; } } for (int i=1; i<=n; i++) { for (int j=1; j<=n; j++) { printf("%d",f[i][j]); } printf(" "); } for (int i=1; i<n; i++) { printf("%d",i+1); if (i!=n) { printf(" "); } else { printf(" "); } } printf("1 "); } else { n--; for (int i=1; i<=n/2; i++) { for (int j=1; j<=n; j++) { tt=i+j; if (tt>n) { tt-=n; } f[tt][j]=j&1; f[j][tt]=j&1; } } n++; for (int i=1;i<n;i++){ f[i][n]=f[n][i]=i&1; } for (int i=1; i<=n; i++) { for (int j=1; j<=n; j++) { printf("%d",f[i][j]); } printf(" "); } for (int i=1; i<n-1; i++) { printf("%d ",i+1); } printf("1 %d ",n); } } }
#include<bits/stdc++.h> using namespace std; int ans[20],n; int a[]= {0,31,28,31,30,31,30,31,31,30,31,30,31}; string s[100010]; int f(char c) { return ans[c-'A']; } bool check(int id) { int year=f(s[id][0])*1000+f(s[id][1])*100+f(s[id][2])*10+f(s[id][3]); int mouth=f(s[id][5])*10+f(s[id][6]); int day=f(s[id][8])*10+f(s[id][9]); if (year%400==0||(year%4==0&&year%100!=0)) { a[2]=29; } if (year<1600||year>9999||mouth>12||mouth<1||day<1||day>a[mouth]) { return 0; } if(mouth<=2) { mouth+=12; year--; } int tmp=(day+mouth*2+3*(mouth+1)/5+year+year/4-year/100+year/400+1)%7; if (tmp==5) { return 1; } return 0; } int main() { int T; scanf("%d",&T); for (int t=1; t<=T; t++) { printf("Case #%d: ",t); scanf("%d",&n); for (int i=0; i<10; i++) { ans[i]=i; } for (int i=0; i<n; i++) { cin>>s[i]; } sort(s,s+n); n=unique(s,s+n)-s; int f=1; do { int i; for (i=0; i<n; i++) { if (!check(i)) { break; } } if (i==n) { for (int i=0; i<10; i++) { printf("%d",ans[i]); } f=0; puts(""); break; } } while (next_permutation(ans,ans+10)); if (f) { puts("Impossible"); } } }