| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 13320 | woqja125 | Collider (IZhO11_collider) | C++98 | 91 ms | 10348 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<stdio.h>
#include<vector>
int buk[1010][2100];
int bs[1010];
char in[1000100];
int main()
{
	int n, m;
	int i, j, k;
	int a, b, bn;
	scanf("%d%d", &n, &m);
	scanf("%s", in);
	j=0;
	for(i=0; j<n; i++)
	{
		for(k=j; k<j+1000 && k<n; k++)
		{
			buk[i][k-j] = in[k]-'x';
			bs[i]++;
		}
		j = k;
	}
	for(;m--;)
	{
		scanf("%s", in);
		if(in[0] == 'a')
		{
			scanf("%d%d", &a, &b); a--; b--;
			int t;
			bn = 0;
			j = 0;
			for(i=0; i<a; )
			{
				if(i+bs[bn] <= a) i+=bs[bn++];
				else{i++;j++;}
			}
			bs[bn]--;
			t = buk[bn][j];
			for(; j<bs[bn]; j++) buk[bn][j] = buk[bn][j+1];
			bn = 0;
			j = 0;
			for(i=0; i<b; )
			{
				if(i+bs[bn] <= b) i+=bs[bn++];
				else{i++;j++;}
			}
			if(j==0 && bn!=0)
			{
				bn--;
				j = bs[bn];
			}
			bs[bn]++;
			for(k=bs[bn]-1; k>j; k--) buk[bn][k] = buk[bn][k-1];
			buk[bn][j] = t;
		}
		else
		{
			scanf("%d", &a);a--;
			bn = 0;
			j = 0;
			for(i=0; i<a; )
			{
				if(i+bs[bn] <= a) i+=bs[bn++];
				else{i++;j++;}
			}
//			printf("%d %d %d ", bn, j, bs[bn]);
			printf("%c\n", buk[bn][j]+'x');
		}
		if(m%900 == 0)
		{
			int l = 0;
			for(i=0; l<n; i++)
			{
				for(j=0; j<bs[i]; j++) in[l++] = buk[i][j];
				bs[i] = 0;
			}
	
			j=0;
			for(i=0; j<n; i++)
			{
				for(k=j; k<j+1000 && k<n; k++)
				{
					buk[i][k-j] = in[k];
					bs[i]++;
				}
				j = k;
			}
		}
	}
	return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
