Submission #1332955

#TimeUsernameProblemLanguageResultExecution timeMemory
1332955trandkList of Unique Integers (FXCUP4_unique)C++17
Compilation error
0 ms0 KiB
#include <stdio.h>
#include <stdlib.h>
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <functional>
#include <iostream>
using namespace __gnu_pbds;
using namespace std;
#define for1(i, n) for(int i=1; i<=n; i++)
#define for0(i, n) for(int i=0; i<n; i++)
#define mnto(a, b) a = min(a, (__typeof__(a))b)
#define mxto(a, b) a = max(a, (__typeof__(a))b)
#define sz(a) (int)a.size();
#define ll long long
#define ld long double
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pil pair<int, ll>
#define pli pair<ll, int>
#define arint vector<int>
#define arll vector<ll>
#define arpii vector<pii>
#define arpll vector<pll>
#define arpil vector<pil>
#define arpli vector<pli>
#define arbool vector<bool>
#define archar vector<char>
#define matint vector<arint>
#define matll vector<arll>
#define matpii vector<arpii>
#define matpll vector<arpll>
#define matpil vector<arpil>
#define matpli vector<arpli>
#define f first
#define s second
#define all(x) x.begin(), x.end()
#define pb push_back
#define mp make_pair
#define FAST_IO cin.tie(0), ios_base::sync_with_stdio(0);
#define INF 1000000001
#define MAXN 200005
#define MOD 1000000007

int UniqueCount(int L, int R);
std::vector<int> PickUnique(int N);

arint PickUnique(int N) {
	arint isu(N, 1);
	int cnt = 0;
	for0(i, N){
		int _cnt = UniqueCount(0, i);
		if(_cnt < cnt)
			isu[i] = 0;
		cnt = _cnt;
	}
	
	for(int i=N-1; i>=0; i--){
		int _cnt = UniqueCount(i, N-1);
		if(_cnt < cnt)
			isu[i] = 0;
		cnt = _cnt;
	}
	return isu;
}

static int N, arr[222], unq[222][222], chk[222];

static void my_assert(int TF, const char* message){
	if(!TF){ puts(message); exit(0); }
}

static int call_cnt = 0;
int UniqueCount(int R, int C){
	call_cnt++;
	my_assert(call_cnt <= 40000, "Wrong : Too Much Calls");
	my_assert(R >= 0 && C < N && R <= C, "Wrong : Invalid R, C");

	return unq[R][C];
}

int main(){
	freopen("unique.in", "r", stdin);
	freopen("unique.out", "w", stdout);
	my_assert(scanf("%d", &N) == 1, "Error: Invalid Input");
	my_assert(2 <= N && N <= 200, "Error: Invalid Input");

	for(int i = 0; i < N; i++){
		my_assert(scanf("%d", &arr[i]) == 1, "Error: Invalid Input");
		my_assert(1 <= arr[i] && arr[i] <= 200, "Error: Invalid Input");
	}
	for(int i = 0; i < N; i++){
		int u = 0;
		for(int j = 1; j <= 200; j++) chk[j] = 0;
		for(int j = i; j < N; j++){
			chk[arr[j]]++;
			if(chk[arr[j]] == 1) u++;
			if(chk[arr[j]] == 2) u--;
			unq[i][j] = u;
		}
	}
	for(int i = 1; i <= 200; i++) chk[i] = 0;
	for(int i = 0; i < N; i++) chk[arr[i]]++;

	std::vector<int> rpd = PickUnique(N);
	my_assert((int) rpd.size() == N, "Wrong: Wrong Answer");
	for(int i = 0; i < N; i++){
		my_assert(rpd[i] == 0 || rpd[i] == 1, "Wrong: Wrong Answer");
		if(chk[arr[i]] == 1) my_assert(rpd[i], "Wrong : Wrong Answer");
		if(rpd[i]) my_assert(chk[arr[i]] == 1, "Wrong : Wrong Answer");
	}
	printf("Correct\n%d\n", call_cnt);
	return 0;
}

Compilation message (stderr)

unique.cpp: In function 'int main()':
unique.cpp:83:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   83 |         freopen("unique.in", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
unique.cpp:84:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   84 |         freopen("unique.out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/cclPG8sD.o: in function `UniqueCount(int, int)':
grader.cpp:(.text+0x20): multiple definition of `UniqueCount(int, int)'; /tmp/ccEO3f1e.o:unique.cpp:(.text+0x20): first defined here
/usr/bin/ld: /tmp/cclPG8sD.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccEO3f1e.o:unique.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status