답안 #974995

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
974995 2024-05-04T09:18:20 Z Cookie Editor (BOI15_edi) C++14
35 / 100
3000 ms 7432 KB
#include<bits/stdc++.h>
#include<fstream>
using namespace std;
#define sz(a) (int)a.size()
#define ALL(v) v.begin(), v.end()
#define ALLR(v) v.rbegin(), v.rend()
#define ll long long
#define pb push_back
#define forr(i, a, b) for(int i = a; i < b; i++)
#define dorr(i, a, b) for(int i = a; i >= b; i--)
#define ld long double
#define vt vector
#include<fstream>
#define fi first
#define se second
#define pll pair<ll, ll>
#define pii pair<int, int>
#define mpp make_pair
#define ull unsigned long long
const ld PI = 3.14159265359, prec = 1e-9;;
//using u128 = __uint128_t;
//const int x[4] = {1, 0, -1, 0};
//const int y[4] = {0, -1, 0, 1};
const ll mod = 1e9 + 19972207, pr = 31;
const int mxn = 3e5 + 5, mxq = 1e5 + 5, sq = 105, mxv = 64;
//const int base = (1 <<18);
const ll inf = 1e9, neg = -69420, inf2 = 1e14;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
// have fun
int n;
int a[mxn + 1], pa[mxn + 1], level[mxn + 1];
bool active[mxn + 1];
void solve(){
    cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
    }
    active[0] = 1;
    for(int i = 1; i <= n; i++){
        active[i] = 1;
        if(a[i] > 0){
            pa[i] = -1;
            cout << a[i] << "\n";
            level[i] = 0;
            continue;
        }else{
            level[i] = -a[i];
            for(int j = i - 1; j >= 1; j--){
                if(active[j] && level[j] < level[i]){
                    pa[i] = j;
                    break;
                }
            }
            for(int j = pa[i]; j != -1; j = pa[j]){
                active[j] ^= 1;
            }
            
            for(int j = i - 1; j >= 0; j--){
                if(active[j] && level[j] == 0){
                    cout << a[j] << "\n";
                    break;
                }
               
            }
        }
    }
}
signed main(){
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    //freopen("TRILAND.inp", "r", stdin);
    //freopen("TRILAND.out", "w", stdout);
    int tt; tt = 1;
    while(tt--){
        solve();

    }
    return(0);
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2392 KB Output is correct
2 Correct 5 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 1 ms 2516 KB Output is correct
5 Correct 19 ms 2396 KB Output is correct
6 Correct 1 ms 2392 KB Output is correct
7 Correct 2 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 1 ms 2396 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 634 ms 7432 KB Output is correct
2 Correct 727 ms 7424 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3007 ms 5044 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2392 KB Output is correct
2 Correct 5 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 1 ms 2516 KB Output is correct
5 Correct 19 ms 2396 KB Output is correct
6 Correct 1 ms 2392 KB Output is correct
7 Correct 2 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 1 ms 2396 KB Output is correct
10 Correct 634 ms 7432 KB Output is correct
11 Correct 727 ms 7424 KB Output is correct
12 Execution timed out 3007 ms 5044 KB Time limit exceeded
13 Halted 0 ms 0 KB -