Submission #329935


Source Code Expand

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
#define rep2(x,from,to) for(int x=(from);(x)<(to);(x)++)
#define rep(x,to) rep2(x,0,to)
#define INF 10000000
int bit[200003];
int Q;
int tt,xx;
void add(int x,int a)
{
	while(x<=200002)
	{
		bit[x]+=a;
		x+=x&-x;
	}
}
int query(int x)
{
	int s=0;
	while(x>0)
	{
		s+=bit[x];
		x-=x&-x;
	}
	return s;
}
int res;
int main()
{
	int ll,rr;
	cin>>Q;
	rep(i,Q)
	{
		cin>>tt>>xx;
		if(tt==1)
		{
			add(xx,1);
		}
		if(tt==2)
		{
			ll=0;
			rr=200002;
			while(1)
			{
				if(ll+1>=rr)break;
				res=(ll+rr)/2;
				if(query(res)>=xx)rr=res;
				else ll=res;
			}
			cout<<rr<<endl;
			add(rr,-1);
		}
	}
	return 0;
}

Submission Info

Submission Time
Task C - データ構造
User tainohimono
Language C++ (G++ 4.6.4)
Score 100
Code Size 797 Byte
Status AC
Exec Time 590 ms
Memory 1956 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 16
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt
Case Name Status Exec Time Memory
sample_01.txt AC 31 ms 1260 KiB
sample_02.txt AC 32 ms 1360 KiB
subtask1_01.txt AC 32 ms 1136 KiB
subtask1_02.txt AC 31 ms 1136 KiB
subtask1_03.txt AC 33 ms 1624 KiB
subtask1_04.txt AC 77 ms 1904 KiB
subtask1_05.txt AC 124 ms 1956 KiB
subtask1_06.txt AC 34 ms 1896 KiB
subtask1_07.txt AC 267 ms 1944 KiB
subtask1_08.txt AC 584 ms 1952 KiB
subtask1_09.txt AC 577 ms 1908 KiB
subtask1_10.txt AC 420 ms 1912 KiB
subtask1_11.txt AC 419 ms 1944 KiB
subtask1_12.txt AC 213 ms 1952 KiB
subtask1_13.txt AC 576 ms 1908 KiB
subtask1_14.txt AC 590 ms 1948 KiB
subtask1_15.txt AC 506 ms 1904 KiB
subtask1_16.txt AC 407 ms 1776 KiB