Codeforces Round #271 (Div. 2)-A.B

2961 단어 codeforces
    A. Keyboard

  
  
  
  
int n,m,tot=0;
char mp[55]={ "qwertyuiop asdfghjkl; zxcvbnm,./" };
int main()
{
    //freopen("D:\data.txt","r",stdin);
    int TT=1,tt=1,i=0,j=0,k=0;
    //scanf("%d",&TT);
    while(TT--){
       char c;   char s[199];   tot =strlen(mp);
       scanf("%c",&c);          scanf("%s",s);
       if(c=='R')  m= -1;  else m= 1;
       int l=strlen(s);
       for(i=0;i<l;i++){
           for(k=0;k<tot;k++){
               if(mp[k]==s[i]) { printf("%c",mp[k+m]);  break; }
           }
       }
    }
    return 0;
}
B. Worms
신의 2점 찾기:
</pre><pre name="code" class="cpp">int n,m,tot=0;
int dat[100009];
int bsearch(int l,int r,int val){
    //printf("find- %d %d %d
",l,r,val); int m; while(l<=r){ m =(l+r)/2; //printf("m- %d xm- %d
",m,x[m]); if(dat[m]==val) return m; else if(dat[m]>val) r=m-1; else l=m+1; } return l; // return -1; // , val ; } int main() { //freopen("D:\data.txt","r",stdin); int TT=1,tt=1,i=0,j=0,k=0; //scanf("%d",&TT); while(TT--){ scanf("%d",&n); dat[0]= 0; for(i=1;i<=n;i++){ scanf("%d",&tt); dat[i]= dat[i-1]+tt; } scanf("%d",&m); for(i=1;i<=m;i++){ scanf("%d",&tt); int ans =bsearch(1,n,tt); printf("%d
",ans); /* lower_bound() first last , val 。 val, last , last ! lower_bound(val): 【 】val iterator 。 upper_bound(val): 【 】val iterator 。 */ } } return 0; }
 

좋은 웹페이지 즐겨찾기