Submission #792168

# Submission time Handle Problem Language Result Execution time Memory
792168 2023-07-24T16:52:28 Z prvocislo Unscrambling a Messy Bug (IOI16_messy) C++17
100 / 100
2 ms 480 KB
#pragma once
#include <algorithm>
#include <bitset>
#include <cassert>
#include <chrono>
#include <cmath>
#include <deque>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <random>
#include <set>
#include <string>
#include <vector>
typedef long long ll;
typedef long double ld;
using namespace std;

void add_element(string x);
bool check_element(string x);
void compile_set();

vector<int> restore_permutation(int n, int w, int r)
{
	string s(n, '0');
	for (int b = 0; (1 << b) < n; b++)
	{
		for (int i = 0; i < n; i++) if (i & (1 << b))
		{
			s[i] = (s[i] == '0' ? '1' : '0');
			add_element(s);
			s[i] = (s[i] == '0' ? '1' : '0');
		}
		for (int i = 0; i < n; i++) if (i & (1 << b))
		{
			s[i] = (s[i] == '0' ? '1' : '0');
		}
	}

	compile_set();
	s.assign(n, '0');
	vector<int> ip(n, 0); // zistime si pre kazdy prvok ze kto bol povodne
	for (int b = 0; (1 << b) < n; b++)
	{
		for (int i = 0; i < n; i++) 
		{
			s[i] = (s[i] == '0' ? '1' : '0');
			if (check_element(s)) ip[i] ^= (1 << b);
			s[i] = (s[i] == '0' ? '1' : '0');
		}
		for (int i = 0; i < n; i++) if (ip[i] & (1 << b))
		{
			s[i] = (s[i] == '0' ? '1' : '0');
		}
	}
	return ip;
}

Compilation message

messy.cpp:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 296 KB n = 8
2 Correct 0 ms 212 KB n = 8
3 Correct 0 ms 212 KB n = 8
4 Correct 1 ms 212 KB n = 8
5 Correct 1 ms 304 KB n = 8
6 Correct 1 ms 300 KB n = 8
7 Correct 1 ms 212 KB n = 8
8 Correct 0 ms 212 KB n = 8
9 Correct 0 ms 212 KB n = 8
10 Correct 1 ms 212 KB n = 8
11 Correct 1 ms 300 KB n = 8
12 Correct 1 ms 304 KB n = 8
13 Correct 1 ms 212 KB n = 8
14 Correct 0 ms 212 KB n = 8
15 Correct 0 ms 212 KB n = 8
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 32
2 Correct 1 ms 212 KB n = 32
3 Correct 1 ms 212 KB n = 32
4 Correct 1 ms 212 KB n = 32
5 Correct 1 ms 300 KB n = 32
6 Correct 1 ms 296 KB n = 32
7 Correct 1 ms 212 KB n = 32
8 Correct 1 ms 212 KB n = 32
9 Correct 1 ms 212 KB n = 32
10 Correct 1 ms 212 KB n = 32
11 Correct 1 ms 212 KB n = 32
12 Correct 0 ms 212 KB n = 32
13 Correct 1 ms 212 KB n = 32
14 Correct 1 ms 212 KB n = 32
15 Correct 1 ms 212 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 32
2 Correct 1 ms 212 KB n = 32
3 Correct 1 ms 212 KB n = 32
4 Correct 1 ms 212 KB n = 32
5 Correct 1 ms 212 KB n = 32
6 Correct 1 ms 212 KB n = 32
7 Correct 1 ms 212 KB n = 32
8 Correct 1 ms 296 KB n = 32
9 Correct 1 ms 212 KB n = 32
10 Correct 1 ms 212 KB n = 32
11 Correct 1 ms 212 KB n = 32
12 Correct 1 ms 212 KB n = 32
13 Correct 1 ms 296 KB n = 32
14 Correct 1 ms 212 KB n = 32
15 Correct 1 ms 212 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB n = 128
2 Correct 1 ms 468 KB n = 128
3 Correct 1 ms 468 KB n = 128
4 Correct 1 ms 468 KB n = 128
5 Correct 1 ms 468 KB n = 128
6 Correct 1 ms 468 KB n = 128
7 Correct 1 ms 468 KB n = 128
8 Correct 2 ms 424 KB n = 128
9 Correct 1 ms 468 KB n = 128
10 Correct 1 ms 468 KB n = 128
11 Correct 1 ms 468 KB n = 128
12 Correct 1 ms 468 KB n = 128
13 Correct 1 ms 428 KB n = 128
14 Correct 1 ms 468 KB n = 128
15 Correct 1 ms 468 KB n = 128
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB n = 128
2 Correct 1 ms 468 KB n = 128
3 Correct 1 ms 468 KB n = 128
4 Correct 1 ms 468 KB n = 128
5 Correct 1 ms 468 KB n = 128
6 Correct 1 ms 468 KB n = 128
7 Correct 1 ms 468 KB n = 128
8 Correct 1 ms 468 KB n = 128
9 Correct 1 ms 468 KB n = 128
10 Correct 1 ms 480 KB n = 128
11 Correct 1 ms 468 KB n = 128
12 Correct 1 ms 432 KB n = 128
13 Correct 1 ms 468 KB n = 128
14 Correct 1 ms 468 KB n = 128
15 Correct 1 ms 468 KB n = 128