//A
#include<iostream> using namespace std; const int Max = 1e6; int main(){ int n,m,s[Max]; int i=0,j=0; cin>>n; while(n--){ cin>>m; while(1){ if(i!=0 && s[i] - m==1){ i--; j++; continue; } else if(i!=0 && m - s[i]==1){ j++; } else{ i++; s[i] = m; } break; } } cout<<j; return 0; }
//B*(一直在超时)
#include<cstdio> int a[1000000],p[1000000]; int i,j,m=1000000,tail=0,T,N; void intit(){ a[0]=0;a[1]=0; for(i=2;i<m;i++){ a[i]=1; for(j=2;j*j<=i;j++){ if(i%j==0){a[i]=0;break;} } if(a[i]){p[tail]=i;tail++;} } } int main(){ intit(); scanf("%d",&T); while(T--){ scanf("%d",&N); for(i=0;p[i]<=N/2;i++){ if(a[N-p[i]]==1){ printf("%d %d\n",p[i],N-p[i]); break; } } } return 0; }
//C
#include<iostream> using namespace std; char s[21][21]; int w,h,sum; void wer(int x,int y){ int direct[4][2]={1,0,-1,0,0,1,0,-1}; for(int i=0;i<4;i++){ if(x+direct[i][0]>=h || y+direct[i][1]>=w || x+direct[i][0]<0 || y+direct[i][1]<0)continue; if(s[x+direct[i][0]][y+direct[i][1]]=='.'){ s[x+direct[i][0]][y+direct[i][1]]='@'; sum++; wer(x+direct[i][0],y+direct[i][1]); } } } int main(){ int ii,jj; while(1){ sum=0; cin>>w>>h; if(w==0 && h==0)break; for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ cin>>s[i][j]; if(s[i][j]=='@'){ii=i;jj=j;sum++;} } } wer(ii,jj); cout<<sum<<endl; } return 0; }
//D
#include<iostream> using namespace std; int main(){ int n,m,i=0; cin>>n>>m; if(m%n!=0)cout<<"-1"; else{ int x=m/n; while(x!=1){ if(x%2==0){ x=x/2; i++; } else if(x%3==0){ x=x/3; i++; } else{ break; } } if(x>1)cout<<"-1"; else cout<<i; } return 0; }
//E
#include <iostream> #include <cstdio> using namespace std; int N,K,res; int tail,a[100][2]; int x[10]={0},y[10]={0}; void retu(int aa,int t){ if(t == K) { res++; return ; } if(aa>=tail) return ; int p1 = a[aa][0],p2 = a[aa][1]; if(!x[p1] && !y[p2]){ x[p1] = 1; y[p2] = 1; retu(aa+1,t+1); x[p1] = 0; y[p2] = 0; } retu(aa+1,t); } int main(){ while(scanf("%d %d",&N,&K)){ if(N == -1 && K == -1) break; res = 0;tail = 0; for(int i = 0;i<N;i++){ for(int j = 0;j<N;j++){ char c;scanf(" %c",&c); if(c == '#') {a[tail][0] = i;a[tail][1]=j;tail++;} } } retu(0,0); printf("%d\n",res); } return 0; }
//F
#include<iostream> using namespace std; int n,sum,s[1010],hs[1010]; int Max(int a,int b){ if(a>b)return a; else return b; } int main(){ while(1){ sum=0; cin>>n; if(n==0)break; for(int i=0;i<n;i++){ cin>>s[i]; } for(int i=0;i<n;i++){ hs[i] = s[i]; for(int j=0;j<i;j++){ if(s[j]<s[i]){ hs[i] = Max(hs[i],hs[j]+s[i]); } } } for(int i=0;i<n;i++){ sum = Max(sum,hs[i]); } cout<<sum<<endl; } return 0; }
//G
#include<iostream> using namespace std; int prime(int a){ for(int i=2;i*i<=a;i++){ if(a%i==0)return 0; } return 1; } int main(){ int a; for(int i=1;;i++){ cin>>a; if(a<=0)break; cout<<i<<": "; if(a==1 || a==2) cout<<"no\n"; else if(prime(a)) cout<<"yes\n"; else cout<<"no\n"; } return 0; }
//H
#include <iostream> using namespace std; int a,b,first[110],second[110],x,chang; void sce(){ while(1){ chang = 1; for(int i=0;i<b;i++){ int z=second[i]; if(first[z-1]>first[z]){ x = first[z-1];first[z-1] = first[z];first[z] = x; chang = 0; } } if(chang)break; } for(int i=0;i<a-1;i++){ if(first[i]>first[i+1]){cout<<"NO\n";chang =0;break;} } if(chang)cout<<"YES\n"; } int main(){ int n; cin>>n; while(n--){ cin>>a>>b; for(int i=0;i<a;i++)cin>>first[i]; for(int i=0;i<b;i++)cin>>second[i]; sce(); } return 0; }
//I
#include<iostream> #include<cstdio> using namespace std; short n; int m1,m2; int sum; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>m1>>m2; printf("Case %d: ",i); sum = m2; for(int j=1;;j++){ if(sum % m1 == 0){cout<<j<<endl;break;} sum = (sum*10+m2)%m1; } } return 0; }
//J
#include<iostream> #include<cstdio> #include<cmath> using namespace std; const double pi = acos(-1); const int Max=1e4+10; int T,m,n,x; double lol,maest,ever,lon[Max]; double max(double a,double b){ if(a>b) return a; else return b; } int main(){ cin>>T; while(T--){ maest=0; cin>>n>>m; for(int i=0;i<n;i++){cin>>x;lon[i]=(pi)*x*x;maest = max(maest,lon[i]);} m++; ever = maest/m; while(maest-ever>1e-5){ lol = (ever+maest)/2; int sum1=0; for(int i=0;i<n;i++){ sum1+=int(lon[i]/lol); } if(sum1>=m) ever=lol; else maest=lol; } printf("%.4lf\n",ever); } return 0; }
//k
#include<iostream> #include<string> #include<cstring> #include<map> using namespace std; int main() { int T; cin>>T; while(T--) { string fruit,place; int num,n; cin>>n; map<string,map<string,int> >a; map<string,map<string,int> >::iterator p; while(n--){ cin>>fruit>>place>>num; a[place][fruit]+=num; } for(p=a.begin();p!=a.end();p++){ cout<<p->first<<endl; map<string,int>::iterator p1; for(p1=p->second.begin();p1!=p->second.end();p1++) cout<<" |----"<<p1->first<<"("<<p1->second<<")"<<endl; } if(T) cout<<endl; } return 0; }
//L
#include<iostream> #include<algorithm> using namespace std; int T,n,m,a,b,sum1,sum2,sum3,sum4; int main(){ cin>>T; while(T--){ cin>>n>>m>>a>>b; sum1=max(n*(m-b-1),n*b); sum2=max((n-1-a)*m,a*m); sum3=max(sum1,sum2); cout<<sum3<<endl; } return 0; }
//M
#include<iostream> #include<iostream> using namespace std; int n,k; int err[110][110]; int dfs(int a,int b){ if(b==1){ for(int i=0;i<100;i++)err[a][i+1]=err[a][i]; return 0; } for(int i=0;i<b-1;i++){ err[a+1][i] = err[a][i+1]-err[a][i]; } dfs(a+1,b-1); for(int i=b;i<100;i++){ err[a][i] = err[a][i-1]+err[a+1][i-1]; } return 0; } int main(){ int T; cin>>T; while(T--){ cin>>n>>k; for(int i=0;i<n;i++)cin>>err[0][i]; dfs(0,n); for(int i=n;i<n+k;i++){cout<<err[0][i];if(i==n+k-1)break;cout<<" ";} cout<<endl; } return 0; }
//N
#include<iostream> #include<cstdio> using namespace std; const int Max=1e6+10; int T,n; double s[Max]; void sum1(){ double sm=0; for(int i=1;i<=100000000;i++){ sm+=1/double(i); if(i%100==0)s[i/100]=sm; } } int main(){ sum1(); cin>>T; for(int i=1;i<=T;i++){ cin>>n; double su=s[n/100]; for(int i=n/100*100+1;i<=n;i++){su+=(1/double(i));} printf("Case %d: %.9lf\n",i,su); } return 0; }