답안 #234420

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
234420 2020-05-24T07:35:56 Z kartel Hokej (COCI17_hokej) C++14
0 / 120
572 ms 36508 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
#define in(x) freopen(x, "r", stdin)
#define out(x) freopen(x, "w", stdout)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-O3")
#define F first
#define S second
#define pb push_back
#define N +300500
#define M ll(1e9 + 7)
#define sz(x) (int)x.size()
#define re return
#define oo ll(1e18)
#define el '\n'
#define pii pair <int, int>
using namespace std;
//using namespace __gnu_pbds;
//typedef tree <int, null_type, less_equal <int> , rb_tree_tag, tree_order_statistics_node_update> ordered_set;
typedef long long ll;
typedef long double ld;

pair <int, pii> pers[N];
vector <pair <int, pii> > vec;
set <pair <int, pii> , greater <pair <int, pii> > > se;
int tim, n, k, l, ans, i, t, ans1[7];

int main()
{
    srand(time(0));
    ios_base::sync_with_stdio(0);
    iostream::sync_with_stdio(0);
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);

//    in("input.txt");
//    out("output.txt");

    cin >> tim >> n;
    for (i = 1; i <= n; i++)
    {
        cin >> k >> l;
        se.insert({k * l, {l, i}});
    }

    for (i = 1; i <= 6; i++)
    {
        pers[i] = *se.begin();
        se.erase(se.begin());
        ans1[i] = pers[i].S.S;
        pers[i].F = pers[i].F / pers[i].S.F;
    }

    for (t = 1; t <= tim; t++)
    {
        vector <int> ve;
        for (i = 1; i <= 6; i++)
        {
            if (pers[i].S.F == 0)
                ve.pb(i);
        }

        for (i = 0; i < sz(ve); i++)
        {
            if (!sz(se))
            {
                pers[ve[i]] = {0, {0, 1e9}};
                continue;
            }

            vec.pb({t, {pers[ve[i]].S.S, (*se.begin()).S.S}});

            pers[ve[i]] = *se.begin();

            pers[ve[i]].F = pers[ve[i]].F / pers[ve[i]].S.F;

            se.erase(se.begin());
        }

        for (i = 1; i <= 6; i++) ans += pers[i].F, pers[i].S.F--;
    }
    cout << ans << el;
    for (i = 1; i <= 6; i++) cout << ans1[i] << " ";
    cout << el;
    cout << sz(vec) << el;
    for (auto x : vec) cout << x.F << " " << x.S.F << " " << x.S.S << el;
}
# 결과 실행 시간 메모리 Grader output
1 Failed 5 ms 384 KB some player fainted
2 Failed 7 ms 768 KB some player fainted
3 Failed 22 ms 2176 KB some player fainted
4 Failed 5 ms 384 KB some player fainted
5 Failed 11 ms 1152 KB some player fainted
6 Incorrect 6 ms 640 KB Integer 350 violates the range [1, 349]
7 Incorrect 9 ms 1024 KB Output isn't correct
8 Incorrect 68 ms 7292 KB Output isn't correct
9 Failed 572 ms 36452 KB the answer doesn't match with the value Z
10 Failed 570 ms 36508 KB the answer doesn't match with the value Z