Submission #1033520

#TimeUsernameProblemLanguageResultExecution timeMemory
1033520Maite_Morale비스킷 담기 (IOI20_biscuits)C++14
100 / 100
25 ms1116 KiB
    #include <bits/stdc++.h>
    using namespace std;
     
    long long count_tastiness(long long x, std::vector<long long> a) {
    	long long c=0,c1=0;long long d=0;
    	std::vector<long long> t={1},v={0};
    	for(long long i=0;i<64;i++){
    		d+=(1LL<<i);
    		if(i<a.size())c1+=(a[i]<<i);
    		c=c1/x;
    		t.push_back(t.back());
    		v.push_back(min(c,d));
    		long long h=c-(1LL<<i);
    		long long r=0;
    		while(h>=0){
    			long long lg=0;
    			if(h>0)lg=log2l(h)+1LL;
    			lg=min(lg,i);
    			if(h>=v[lg]){
    				r+=t[lg];
    				break;
    			}	
    			r+=t[lg-1];
    			h-=(1LL<<(lg-1));
    		}
    		t[i+1]+=r;
    	}	
    return t[64];
    }

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:9:11: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |       if(i<a.size())c1+=(a[i]<<i);
      |          ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...