| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1363381 | BigBadBully | Voltage 2 (JOI26_voltage) | C++20 | 45 ms | 676 KiB |
#include <bits/stdc++.h>
#include "voltage.h"
#define pii pair<int,int>
#define ff first
#define ss second
using namespace std;
bool solve(int n, int m) {
vector<int> vis(n,0);
vector<pii> edg;
while(edg.size()<m)
{
int mini = 0;
int eq = 1;
while(vis[mini])mini++;
for(int i = mini+1; i < n ;i++)
if(!vis[i])
{
vector<int> a = vis;
auto b = a;
a[mini] = 1;
b[i] = 1;
int res = query(a,b);
if(res<0)
mini = i;
if(res!=0)eq = 0;
}
if(eq)return false;
vis[mini]=1;
vector<int> left;
for(int i = 0; i < n; i++)
if(!vis[i])left.push_back(i);
random_shuffle(left.begin(),left.end());
int k = left.size();
function<int(int,int)> ask = [&](int l,int r)
{
if(r==k)return -1;
auto a = vis,b = vis;
a[mini] = 0;
for(int i = l; i <= r;i++)
a[left[i]]=b[left[i]]=1;
return query(a,b);
};
function<int(int)> fnd = [&](int idx)
{
int l = idx,r = k;
if(ask(l,k-1)==0)return k;
while(r-l)
{
int mid = l +r>>1;
int res = ask(idx,mid);
if(res==1)return -3;
if(ask(idx,mid)==-1)
r = mid;
else
l = mid+1;
}
return l;
};
int cur = -1;
while(cur >= -1 && cur < k)
{
cur = fnd(cur+1);
if(cur>=0&&cur<k)
edg.push_back({left[cur],mini});
}
if(cur<0)
return false;
/*for(int i = 0;i < n; i++)
if(!vis[i])
{
auto a = vis,b = vis;
a[mini]=0;
a[i]=1;
b[i]=1;
int res = query(a,b);
if(res>0)return false;
if(res)
edg.push_back({i,mini});
}*/
}
if(edg.size()>m)
return false;
for(pii x:edg)
answer(x.ff,x.ss);
return true;
}Compilation message (stderr)
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
