Submission #288445

# Submission time Handle Problem Language Result Execution time Memory
288445 2020-09-01T13:44:16 Z Benmath Rack (eJOI19_rack) C++14
0 / 100
1 ms 256 KB
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
long long int k;
    cin>>k;
    long int step[n+1];
    long long int mod=10e9+7;
    step[0]=1;
    for(int i=1;i<=n;i++){
        step[i]=(step[i-1]*2)%mod;
    }
    
    if(k==1){
        cout<<1;
    }else{
        if(k==2){
            cout<<step[n-1]+1;
        }else{
            long long int y;
            if(k%2==0){
                y=(k-2)/2;
            }else{
                y=(k-1)/2;
            }
          
        long long int ti;
        long long int li;
        long long int step1=1;
        long long int mi=0;
        for(int i=1;i<=n;i++){
            if(i!=1){
                step1=step1*2;
           mi++;
            }
            if((y-step1)<step1){
                ti=step1;
                li=y-step1;
                
                break;
            }
        }
   
        long long int a1=step[n-2-mi] ;
       
        li=li%mod;
        long long int b=(2*li+1)%mod;
        long long int res=(a1*b+1)%mod;
        
        if(k%2==0){
            res=(res+step[n-1])%mod;
        }
        cout<<res;
        }
    }
    
}

Compilation message

rack.cpp: In function 'int main()':
rack.cpp:28:23: warning: variable 'ti' set but not used [-Wunused-but-set-variable]
   28 |         long long int ti;
      |                       ^~
rack.cpp:47:11: warning: 'li' may be used uninitialized in this function [-Wmaybe-uninitialized]
   47 |         li=li%mod;
      |         ~~^~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Incorrect 0 ms 256 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Incorrect 0 ms 256 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Incorrect 0 ms 256 KB Output isn't correct