| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1292842 | enzy | 비스킷 담기 (IOI20_biscuits) | C++20 | 0 ms | 0 KiB |
#include "biscuits.h"
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxk=62;
vector<pair<ll,ll>>dp[maxk];
ll count_tastiness(ll x, vector<ll> v){
reverse(v.begin(),v.end());
v.push_back(0);
reverse(v.begin(),v.end());
while(v.size()<=61) v.push_back(0);
ll resp=1;
dp[0].push_back({1,0});
for(int i=1;i<=60;i++){
// calcular a resp agr pro bit i-1
cout << "? " << v[i] << endl;
for(int j=i-1;j>=0;j--){
for(pair<ll,ll>p : dp[j]){
ll sum=p.second; // qnt terei de i para pagar
for(int l=j;l<=i;l++){
sum+=v[l];
sum/=2;
}
if(sum>=x){
dp[i].push_back({p.first,(sum-x)/2});
resp+
}
}
}
cout << "! " << i << " " << resp << endl;
for(pair<ll,ll> p : dp[i]) cout << p.first << " " << p.second << endl;
cout << endl;
}
return resp;
}
