Submission #46090

# Submission time Handle Problem Language Result Execution time Memory
46090 2018-04-17T08:53:33 Z grumpy_gordon Editor (BOI15_edi) C++17
43 / 100
249 ms 60776 KB
#include <cstdio>
#include <cstdlib>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cstring>
#define SIZE 300005
#define BT 20
 
using namespace std;
 
int A[SIZE];
int par[SIZE][BT];
int mn[SIZE][BT];
int ans[SIZE];
 
int main()
{
	int n;
	scanf("%d",&n);
	memset(par,-1,sizeof(par));
	memset(mn,-1,sizeof(mn));
	for(int i=0;i<n;i++)
	{
		int a;
		scanf("%d",&a);
		if(a>0)
		{
			ans[i]=a;
			par[i][0]=i;
		}
		else
		{
			a=-a;
			int to=i-1;
			for(int j=BT-1;j>=0;j--)
			{
				if(mn[to][j]>=a)
				{
					to=par[to][j];
				}
			}
			to--;
			if(to==-1)
			{
				ans[i]=0;
				mn[i][0]=a;
			}
			else
			{
				ans[i]=ans[to];
				int now=to,c=a;
				for(int j=0;j<BT;j++)
				{
					par[i][j]=now;
					mn[i][j]=c;
					if(now!=-1)
					{
						c=mn[now][j];
						now=par[now][j];
					}
				}
			}
		}
		printf("%d\n",ans[i]);
	}
	return 0;
}

Compilation message

edi.cpp: In function 'int main()':
edi.cpp:20:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
  ~~~~~^~~~~~~~~
edi.cpp:26:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&a);
   ~~~~~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 35 ms 47192 KB Output is correct
2 Incorrect 37 ms 47472 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 160 ms 51976 KB Output is correct
2 Correct 147 ms 53604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 97 ms 53604 KB Output is correct
2 Correct 110 ms 54280 KB Output is correct
3 Correct 249 ms 55500 KB Output is correct
4 Correct 170 ms 58676 KB Output is correct
5 Correct 146 ms 60776 KB Output is correct
6 Correct 173 ms 60776 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 35 ms 47192 KB Output is correct
2 Incorrect 37 ms 47472 KB Output isn't correct
3 Halted 0 ms 0 KB -