# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
173753 | Ruxandra985 | ICC (CEOI16_icc) | C++14 | 475 ms | 676 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "icc.h"
using namespace std;
int f[110] , w[110] , a[110] , b[110] , fq[110];
int idk[110];
void run (int n){
int i , cc , st , dr , mid , aux , p , q , l , r , elem;
for (i=1;i<=n;i++)
f[i] = i;
for (int mc = 1 ; mc < n ; mc++){
/// vreau sa ma duc in jos cat pot pana gasesc intervalul care contine capetele
while (true){
/// o sa fac solutia aia mai proasta cu generat random pt ca nuj cum altcumva
memset (fq , 0 , sizeof(fq));
for (i=1;i<=( n - mc + 1) / 2 ;i++){
idk[i] = idk[i-1] + (rand() % (n - mc + 1 - ( ( n - mc + 1) / 2 ) + i - idk[i-1])) + 1;
fq[idk[i]] = 1;
//printf ("%d ",idk[i]);
}
//printf ("\n");
/// idk ar trebui sa fie (n - mc + 1) / 2 numere in ordine crescatoare
p = q = 0;
for (i=1;i<=n;i++){
if (fq[f[i]] == 1)
a[p++] = i;
}
for (i=1;i<=n;i++){
if (fq[f[i]] == 0)
b[q++] = i;
}
if (query( p , q , a , b ) == 1){
/// un capat de muchie e intr o jumatate , celalalt capat in cealalta
break;
}
else {
/// ambele capete sunt in aceeasi jum
continue;
}
}
/// ai vectorii a si b
/// a are p elem si b are q
/// a si b sunt indexate de la 0
/// pt a
while (p > 1){
if (query (p / 2 , q , a , b) == 1)
p/=2;
else {
for (i = p/2 ; i < p ; i++)
a[i - p/2] = a[i];
p = p - p / 2;
}
}
/// pt b
while (q > 1){
if (query (p , q / 2 , a , b) == 1)
q/=2;
else {
for (i = q/2 ; i < q ; i++)
b[i - q/2] = b[i];
q = q - q / 2;
}
}
setRoad(a[0] , b[0]);
/// acum trebuie sa modificam f ul
int u1 = min( f[a[0]] , f[b[0]] );
int u2 = max( f[a[0]] , f[b[0]] );
for (i=1;i<=n;i++){
if (f[i] == u2)
f[i] = u1;
else if (f[i] == n - mc + 1 && u2 != n - mc + 1)
f[i] = u2;
}
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |