답안 #727708

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
727708 2023-04-21T06:36:02 Z Vu_CG_Coder 팀들 (IOI15_teams) C++14
34 / 100
4000 ms 17856 KB
/* [Author : Hoang Duy Vu] - THPT Chuyen Nguyen Du    */
//#pragma GCC optimize(" unroll-loops")
//#pragma gcc optimize("Ofast")
//#pragma GCC optimization("Ofast")
//#pragma optimize(Ofast)
#include "teams.h"
#include <bits/stdc++.h>
#define All(x) (x).begin(),(x).end()
#define ll long long
#define C make_pair
#define fi first
#define se second
#define two second.first
#define thr second.second
#define TASK "txt"
using namespace std;
template<typename T> bool maximize(T &res, const T &val) {
    if (res < val) { res = val; return true; } return false; }
template<typename T> bool minimize(T &res, const T &val) {
    if (res > val) { res = val; return true; } return false; }

typedef pair<int,int> ii;
typedef pair<int,ii> iii;
const int LOG = 20;
const int INF = 1e9 + 7;
const ll LNF = 1e18 + 7;
const int mod = 1e9 + 7;
const int Nx = 1e5 + 100;

multiset <int> s;
ii a[Nx];
vector <int> in[Nx] , out[Nx];
int n;
int m;
void init(int N, int A[], int B[]) {

    n = N;
    for (int i = 0 ; i < n ; i++)
    {
        in[B[i]].push_back(A[i]);
        out[A[i] - 1].push_back(A[i]);
    }
}

int can(int M, int K[]) {
    m = M;

    sort(K,K+m);
    s.clear();

    int r = m - 1;
    for (int i = n ; i >= 0 ; i--)
    {
        for (int v : in[i]) s.insert(v);
        

        while (!s.empty())
        {
            auto x = s.end();
            x--;
            if ((*x) > i) s.erase(s.find(*x));
            else break;
        }
        

        // cout << i << ": ";
        // for (int v : s) cout << v << " ";
        // cout << "\n";

        while (r >= 0 && K[r] == i)
        {
            if (s.size() < i) return 0;
            for (int j = 1 ; j <= i ; j++) 
            {
                auto x = s.end();
                x--;
                s.erase(s.find(*x));
            }
            r--;
        } 
    }

	return 1;
}

// int main()
// {
//     ios_base::sync_with_stdio(0);
//     cin.tie(NULL); cout.tie(NULL);
//     if(fopen(TASK".inp", "r")){
//     freopen(TASK".inp","r",stdin);
//     freopen(TASK".out","w",stdout);
//     }

//     int A[10] , B[10];

//     int p;
//     cin >> p;

//     for (int i = 0 ; i < p ; i++) cin >> A[i] >> B[i];
//     init(p,A,B);

//     int q;
//     cin >> q;
//     while (q--)
//     {
//         int k[10];
//         int x;
//         cin >> x;
//         for (int i = 0 ; i < x ; i++) cin >> k[i];
//         cout << can(x,k) << "\n";
//     }
    

//     return 0;
// }

Compilation message

teams.cpp: In function 'int can(int, int*)':
teams.cpp:72:26: warning: comparison of integer expressions of different signedness: 'std::multiset<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   72 |             if (s.size() < i) return 0;
      |                 ~~~~~~~~~^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Correct 3 ms 4948 KB Output is correct
3 Correct 3 ms 4948 KB Output is correct
4 Correct 4 ms 4948 KB Output is correct
5 Correct 3 ms 4948 KB Output is correct
6 Correct 3 ms 4948 KB Output is correct
7 Correct 3 ms 4948 KB Output is correct
8 Correct 3 ms 4948 KB Output is correct
9 Correct 3 ms 4948 KB Output is correct
10 Correct 3 ms 4948 KB Output is correct
11 Correct 3 ms 4948 KB Output is correct
12 Correct 4 ms 4948 KB Output is correct
13 Correct 3 ms 4948 KB Output is correct
14 Correct 3 ms 4948 KB Output is correct
15 Correct 3 ms 5020 KB Output is correct
16 Correct 3 ms 4948 KB Output is correct
17 Correct 3 ms 4948 KB Output is correct
18 Correct 3 ms 4948 KB Output is correct
19 Correct 3 ms 4948 KB Output is correct
20 Correct 3 ms 4948 KB Output is correct
21 Correct 3 ms 4948 KB Output is correct
22 Correct 2 ms 4948 KB Output is correct
23 Correct 3 ms 5008 KB Output is correct
24 Correct 3 ms 4948 KB Output is correct
25 Correct 3 ms 4948 KB Output is correct
26 Correct 3 ms 4948 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 54 ms 11652 KB Output is correct
2 Correct 61 ms 11724 KB Output is correct
3 Correct 43 ms 11284 KB Output is correct
4 Correct 80 ms 12048 KB Output is correct
5 Correct 19 ms 6996 KB Output is correct
6 Correct 9 ms 6996 KB Output is correct
7 Correct 17 ms 7112 KB Output is correct
8 Correct 17 ms 7072 KB Output is correct
9 Correct 35 ms 11348 KB Output is correct
10 Correct 26 ms 11236 KB Output is correct
11 Correct 25 ms 11208 KB Output is correct
12 Correct 27 ms 11264 KB Output is correct
13 Correct 41 ms 11080 KB Output is correct
14 Correct 32 ms 10948 KB Output is correct
15 Correct 55 ms 10956 KB Output is correct
16 Correct 49 ms 11000 KB Output is correct
17 Correct 27 ms 8332 KB Output is correct
18 Correct 28 ms 8780 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 4086 ms 11912 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 36 ms 17856 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -