「AOJ191~200」の編集履歴(バックアップ)一覧に戻る
#include<stdio.h> #include<string.h> double fertilizer[102][102]; void calc(int n,int m){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ scanf("%lf",&fertilizer[i][j]); } } double memo[2][101]; for(int i=0;i<n;i++){ memo[0][i]=1.0; } int now,next=0; double size,nextSize; for(int i=0;i<m-1;i++){ now=i%2; next=(i+1)%2; for(int j=0;j<n;j++){ memo[next][j]=0; } for(int j=0;j<n;j++){ size=memo[now][j]; for(int k=0;k<n;k++){ nextSize=size*fertilizer[j][k]; if(memo[next][k]<nextSize){ memo[next][k]=nextSize; } } } } double ans=0; for(int i=0;i<n;i++){ ans=memo[next][i]>ans?memo[next][i]:ans; } printf("%.2lf\n",ans); } int main(){ int n,m; while(1){ scanf("%d %d",&n,&m); if(n==0 && m==0) break; calc(n,m); } }
#include<stdio.h> int main(){ int s1,s2,ans,no,i; while(1){ scanf("%d %d",&s1,&s2); ans=s1+s2; if(ans==0)break; no=0; for(i=1;i<5;i++){ scanf("%d %d",&s1,&s2); if(ans<s1+s2){ ans=s1+s2; no=i; } } printf("%c %d\n",no+'A',ans); } }
#include<stdio.h> #include <algorithm> struct team{ int v,l,no; char name; bool operator<(const team t)const{ if(v!=t.v) return v>t.v; if(l!=t.l) return l<t.l; return no<t.no; } }; void setTeam(int n){ team teams[11]; int t; for(int i=0;i<n;i++){ scanf(" %c",&teams[i].name); teams[i].v=teams[i].l=0; teams[i].no=i; for(int j=1;j<n;j++){ scanf("%d",&t); if(t==0)teams[i].v++; if(t==1)teams[i].l++; } } std::sort(teams,teams+n); for(int i=0;i<n;i++){ printf("%c\n",teams[i].name); } } int main(){ int n; while(scanf("%d",&n),n>0){ setTeam(n); } }