1314

#include <iostream> #include <cstdio> #include <sstream> #include <string> using namespace std; int n; string str; int main() { int t; cin>>t; while(t–) { cin>>n; cin>>str; int i=0,j=1,k; while(i<n && j<n) { for(k=0;k<n;k++) { if(str[(k+i)%n]!=str[(k+j)%n]) break; } if(k==n) break; if(str[(k+i)%n]>str[(k+j)%n]) i=i+k+1; else if(str[(k+i)%n]<str[(k+j)%n]) j=j+k+1; if(i==j) j+=1; } cout<<((i>j)?j:i)<<"\n"; } return 0; }  

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; }