Submission #44132

# Submission time Handle Problem Language Result Execution time Memory
44132 2018-03-30T07:58:21 Z zigui Karte (COCI18_karte) C++17
120 / 120
165 ms 18016 KB
#include <stdio.h>
#include <algorithm>
#include <assert.h>
#include <bitset>
#include <cmath>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits.h>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <time.h>
#include <unordered_map>
#include <unordered_set>
#include <vector>

#pragma warning(disable:4N2N26)
#pragma comment(linker, "/STACK:336777216")
using namespace std;

#define mp make_pair
#define all(x) (x).begin(), (x).end()
#define ldb ldouble

typedef tuple<int, int, int> t3;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef long double ldb;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;
typedef pair <ll, int> pli;
typedef pair <db, db> pdd;

int IT_MAX = 1 << 18;
ll MOD = 1000000007;
const int INF = 0x3f3f3f3f;
const ll LL_INF = 0x3f3f3f3f3f3f3f3f;
const db PI = acos(-1);
const db ERR = 1e-10;
#define szz(x) (int)(x).size()
#define Se second
#define Fi first
#define rep(i, n) for(int i=0;i<n;i++)
#define pb(x) push_back(x)

const int MX = 500005;
const int MM = 1000000433;
int D[MX];

int main()
{
	int N, K;
	scanf("%d%d", &N, &K);
	for(int i = 1; i <= N; i++) scanf("%d", D+i);

	vector<int> P, Q;
	for(int i = 1; i <= N; i++){
		if(D[i] > K) P.push_back(D[i]);
		else Q.push_back(D[i]);
	}
	sort(Q.begin(), Q.end());
	vector<int> ans, R;
	if(P.size() > K) return !printf("-1\n");
	for(int c : Q){
		if(ans.size() + P.size() < K && c > ans.size()) ans.push_back(c);
		else R.push_back(c);
	}
	if(ans.size() + P.size() != K) return !printf("-1\n");
	for(int c : P) ans.push_back(c);
	for(int c : R) ans.push_back(c);
	reverse(ans.begin(), ans.end());
	for(int c : ans) printf("%d ", c);
	printf("\n");
}

Compilation message

karte.cpp:23:0: warning: ignoring #pragma warning  [-Wunknown-pragmas]
 #pragma warning(disable:4N2N26)
 
karte.cpp:24:0: warning: ignoring #pragma comment  [-Wunknown-pragmas]
 #pragma comment(linker, "/STACK:336777216")
 
karte.cpp: In function 'int main()':
karte.cpp:70:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if(P.size() > K) return !printf("-1\n");
     ~~~~~~~~~^~~
karte.cpp:72:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(ans.size() + P.size() < K && c > ans.size()) ans.push_back(c);
      ~~~~~~~~~~~~~~~~~~~~~~^~~
karte.cpp:72:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(ans.size() + P.size() < K && c > ans.size()) ans.push_back(c);
                                   ~~^~~~~~~~~~~~
karte.cpp:75:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if(ans.size() + P.size() != K) return !printf("-1\n");
     ~~~~~~~~~~~~~~~~~~~~~~^~~~
karte.cpp:60:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &N, &K);
  ~~~~~^~~~~~~~~~~~~~~~
karte.cpp:61:35: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i = 1; i <= N; i++) scanf("%d", D+i);
                              ~~~~~^~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 616 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 616 KB Output is correct
2 Correct 2 ms 648 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 648 KB Output is correct
2 Correct 2 ms 840 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 840 KB Output is correct
2 Correct 2 ms 840 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 840 KB Output is correct
2 Correct 2 ms 840 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 852 KB Output is correct
2 Correct 2 ms 916 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 928 KB Output is correct
2 Correct 2 ms 940 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 35 ms 3664 KB Output is correct
2 Correct 21 ms 3664 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 67 ms 7636 KB Output is correct
2 Correct 43 ms 7636 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 165 ms 18016 KB Output is correct
2 Correct 111 ms 18016 KB Output is correct