347

#include <iostream> #include <vector> #include <map> #include <cstring> #include <cstdio> using namespace std; map<int,int> np,mp; vector<int> vb; int arr[10]; int run[9999999+1]; int len; bool check(int a) { char in[100]; int x; if(a<100) len=2; else if(a<1000) len=3; else if(a<10000) len=4; else if(a<100000) len=5; else if(a<1000000) len=6; else if(a<10000000) len=7; int d[10]; for(int i=0;i<10;i++) d[i]=0; int k=len-1;

301

#include <iostream> #include <vector> #include <algorithm> using namespace std; struct order{ int start; int dest; int pss; int prft; }; vector<order> vb; int cap,b,num_order; int result; int passenger_cap[10]; int solve(int position_order,int max) { if(result<max) result=max; int f; while(position_order<=(num_order-1)) { f=0; for(int i=vb[position_order].start;i<vb[position_order].dest;i++) { passenger_cap[i]+=vb[position_order].pss; if(passenger_cap[i]>cap) { f=1; //break; } } if(!f) { solve(position_order+1,max+vb[position_order].prft); } for(int

12712

#include <iostream> using namespace std; int main() { int t,c=0; int MX; int L,M,N; unsigned long long sum,tmp; cin>>t; while(t–) { cin>>L>>M>>N; c++; MX=L*L; tmp=1; for(int i=M-1;i>=0;i–) { tmp=tmp*(MX-i); tmp%=10000000000007; } sum=0; for(int j=1;j<=N-M+1;j++) { sum+=tmp; sum%=10000000000007; tmp*=(MX-M+1-j); tmp%=10000000000007; } cout<<"Case "<<c<<": "; cout<<sum<<"\n"; } return 0; }  

350

#include <iostream> #include <map> using namespace std; map<unsigned long long,int> mp; int main() { unsigned long long z,I,M,L; int c=0; while(cin>>z) { cin>>I>>M>>L; if(z==0 && I==0 && M==0 && L==0) break; c++; mp.clear(); L=((z)*(L)+I)%M; //mp[L]=1; while(mp[L]==0) { mp[L]=1; L=(z*L+I)%M; } cout<<"Case "<<c<<": "; cout<<mp.size()<<"\n"; } return 0; }  

10104

//Extended euclid Algorithm #include <iostream> using namespace std; long long int gcd(long long int a, long long int b) { if(b==0) return a; else return gcd(b,a%b); } int main() { long long int a,b,g,q,temp,t1,t2; while(cin>>a>>b) { //g=gcd(a,b); long long int prevx=1,x=0,y=1,prevy=0; while(b) { q=a/b; t1=x; x=prevx-q*x; prevx=t1; t2=y; y=prevy-q*y; prevy=t2; temp=a; a=b; b=temp%b; } cout<<prevx<<"

353

Solution: #include <iostream> #include <string> #include <string.h> #include <map> using namespace std; map<string,int> mp; int palin(string s) { int l=s.size()-1; for(int i=0;i<s.size()/2;i++) { if(s[i]!=s[l-i]) return 0; } return 1; } int main() { string s,str; int l,c; while(cin>>s) { l=s.size(); mp.clear(); c=0; for(int i=0;i<l;i++) { for(int j=0;j<l;j++) { str=s.substr(i,l-j); if(mp[str]>=1) continue; if(palin(str)) { mp[str]=1; c++;

12720

//1101110 =110 // //1101010 //1101110 //1101010 #include <iostream> #include <string> #include <string.h> #define MOD 1000000007 using namespace std; unsigned long long x[100001]; unsigned long long y; int main() { int t,l,m,kase=0; int a,b; string str,s; x[0]=1; x[1]=2; for(int i=2;i<100001;i++) x[i]=(x[i-1]*2)%MOD; cin>>t; while(t–) { cin>>str; y=0; s=""; kase++; if(str.size()%2==1) { a=str.size()/2; b=a; } else { b=str.size()/2;

12764

#include <iostream> #include <string.h> #include <string> #include <stdio.h> using namespace std; string a[10]; string b[10]; string c[10]; int main() { a[0]="\\ / "; b[0]=" | "; c[0]="/o\\ "; a[1]=" o "; b[1]="/|\\ "; c[1]="/ \\ "; a[2]=" "; b[2]=" "; c[2]="__\\o"; a[3]=" "; b[3]=" "; c[3]="\\_\\o"; a[4]="_o_ "; b[4]=" | "; c[4]="/ \\ "; a[5]="\\o/

12765

#include <iostream> using namespace std; int a[10][10]; int ans1[8]; int ans2[8]; int main() { int N,M,n; a[1][1]=1; a[2][2]=1; a[3][3]=1; a[4][2]=2; a[5][5]=1; a[6][2]=1; a[6][3]=1; a[7][7]=1; a[8][2]=3; a[9][3]=2; for(int i=1;i<=9;i++) { for(int j=1;j<=7;j++) a[i][j]+=a[i-1][j]; } //for(int i=1;i<=9;i++) //cout<<a[9][i]<<" "; while(cin>>N) { cin>>M; if(N==0 && M==0) break; for(int i=1;i<8;i++) { ans1[i]=0; ans2[i]=0; } for(int i=0;i<N;i++) { cin>>n; if(n!=0)