답안 #260568

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
260568 2020-08-10T14:21:37 Z ElyesChaabouni 크레이피쉬 글쓰는 기계 (IOI12_scrivener) C++14
5 / 100
520 ms 75468 KB
/*#pragma GCC optimize("O3")*/
#include<bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp> 
//#define ordered_set tree<int, null_type,less<int >, rb_tree_tag,tree_order_statistics_node_update> 
#define eps 1e-9
#define MOD1 998244353
#define MOD2 1000000007
#define INV_10 299473306
#define INF 1000000001
#define PI 3.14159265358979323846
using namespace std;
int pos=0;
vector<int>v, depth;
vector<char>tree;
vector<int>anc[1000005];
void process(int x, int y)
{
	int nb=0;
	bool ok=true;
	anc[x].push_back(y);
	while(ok)
	{
		int cu=anc[x].back();
		if(anc[cu].size() > nb)
		{
			anc[x].push_back(anc[cu][nb]);
			nb++;
		}
		else
			ok=false;
	}
}
char find_kth(int x, int k)
{
	int nb=0;
	while(k)
	{
		if(k%2==1)
			x=anc[x][nb];
		nb++;
		k/=2;
	}
	return tree[x];
}
void Init()
{
	v.clear();
	tree.clear();
	tree.push_back(0);
	depth.push_back(0);
	for(int i = 0; i < 1000005; i++)
	{
		anc[i].clear();
	}
	pos=0;
}
void TypeLetter(char L)
{
	tree.push_back(L);
	process(tree.size()-1, pos);
	depth.push_back(depth[pos]+1);
	pos=tree.size()-1;
	v.push_back(pos);
}
void UndoCommands(int U)
{
	v.push_back(0);
	v.back()=v[v.size()-1-U];
	pos=v.back();
	depth.push_back(depth[pos]);
}
char GetLetter(int P)
{
	P++;
	return find_kth(pos, depth[pos]-P);
}
//size

Compilation message

scrivener.cpp: In function 'void process(int, int)':
scrivener.cpp:25:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(anc[cu].size() > nb)
      ~~~~~~~~~~~~~~~^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 18 ms 23808 KB Output is correct
2 Correct 19 ms 23808 KB Output is correct
3 Correct 18 ms 23808 KB Output is correct
4 Correct 18 ms 23808 KB Output is correct
5 Correct 18 ms 23776 KB Output is correct
6 Correct 18 ms 23808 KB Output is correct
7 Correct 19 ms 23808 KB Output is correct
8 Correct 17 ms 23808 KB Output is correct
9 Correct 18 ms 23808 KB Output is correct
10 Correct 18 ms 23808 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 18 ms 23808 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 19 ms 23936 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 510 ms 75468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 520 ms 68192 KB Output isn't correct
2 Halted 0 ms 0 KB -