답안 #757940

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
757940 2023-06-14T02:32:42 Z jer033 Fruits (NOI22_fruits) C++17
5 / 100
237 ms 15048 KB
#include <algorithm>
#include <iostream>

int assigned[400005];
long long costs[400005];
long long answer[400005];
int available[400005];

using namespace std;

int main()
{
	int n;
	cin >> n;
	int subtwo=1;
	for (int i=1; i<=n; i++)
	{
		available[i]=1;
	}
	for (int i=1; i<=n; i++)
	{
		cin >> assigned[i];
		if (assigned[i]>0)
		{
			subtwo=0;
			available[assigned[i]]=0;
		}
	}
	if (subtwo)
	{
		answer[0]=0;
		for (int i=1; i<=n; i++)
		{
			cin >> costs[i];
			answer[i]=answer[i-1]+costs[i];
		}
		for (int i=0; i<n; i++)
		{
			cout << answer[n]-answer[n-1-i];
			if (i!=(n-1))
				cout << ' ';
			else
				cout << '\n';
		}
	}
	else
	{
		//let's assume subtask 5 holds
		int index=1;
		int curr=1;
		while (curr<=n)
		{
			if (assigned[index]>0)
			{
				curr=max(curr, assigned[index]);
			}
			else
			{
				while (available[curr]==0 and curr<=n)
					curr++;
				if (curr<=n)
				{
					assigned[index]=curr;
					curr++;
				}
			}
			index++;
		}
		//once curr=n+1 all remaining fruit assignments don't really matter anymore
		//you can keep them at -1, since they won't be bought by Benson anyways
		answer[0]=0;
		int max=0;
		for (int i=1; i<=n; i++)
		{
			answer[i]=answer[i-1];
			if (assigned[i]>max)
			{
				max=assigned[i];
				answer[i]++;
			}
		}
		for (int i=1; i<=n; i++)
		{
			cout << answer[i];
			if (i!=n)
				cout << ' ';
			else
				cout << '\n';
		}
	}
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 2 ms 340 KB Output is correct
3 Correct 13 ms 1020 KB Output is correct
4 Correct 122 ms 7632 KB Output is correct
5 Correct 237 ms 15048 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 118 ms 9292 KB Output is correct
2 Incorrect 138 ms 8624 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -