Submission #835491

# Submission time Handle Problem Language Result Execution time Memory
835491 2023-08-23T15:09:16 Z mousebeaver Seats (IOI18_seats) C++14
17 / 100
4000 ms 66440 KB
#include "seats.h"
#include <bits/stdc++.h>
#define pii pair<int, int>
using namespace std;

struct inf
{
    int r1;
    int r2;
    int c1;
    int c2;
    bool possible;
};

vector<inf> a(0);
vector<pii> p(0);
int counter = 1;

void give_initial_chart(int H, int W, std::vector<int> R, std::vector<int> C) 
{
    int n = H*W;
    for(int i = 0; i < n; i++)
    {
        p.push_back({R[i], C[i]});
    }

    a = {{p[0].first, p[0].first, p[0].second, p[0].second, true}};
    for(int i = 1; i < n; i++)
    {
        a.push_back(a.back());
        a.back().r1 = min(a.back().r1, p[i].first);
        a.back().r2 = max(a.back().r2, p[i].first);
        a.back().c1 = min(a.back().c1, p[i].second);
        a.back().c2 = max(a.back().c2, p[i].second);
        a.back().possible = ((1+a.back().r2-a.back().r1)*(1+a.back().c2-a.back().c1) == i+1);
        counter += a.back().possible;
    }
}

int swap_seats(int d, int b) 
{
    if(d > b)
    {
        swap(d, b);
    }
    swap(p[d], p[b]);

    for(int i = d; i <= b; i++)
    {
        counter -= a[i].possible;
        if(i == 0)
        {
            a[i] = {p[0].first, p[0].first, p[0].second, p[0].second, true};
        }
        else
        {
            a[i] = a[i-1];
        }
        a[i].r1 = min(a[i].r1, p[i].first);
        a[i].r2 = max(a[i].r2, p[i].first);
        a[i].c1 = min(a[i].c1, p[i].second);
        a[i].c2 = max(a[i].c2, p[i].second);
        a[i].possible = ((1+a[i].r2-a[i].r1)*(1+a[i].c2-a[i].c1) == i+1);
        counter += a[i].possible;
    }

    return counter;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 340 KB Output is correct
2 Correct 2 ms 468 KB Output is correct
3 Correct 3 ms 436 KB Output is correct
4 Correct 3 ms 428 KB Output is correct
5 Correct 3 ms 468 KB Output is correct
6 Correct 3 ms 400 KB Output is correct
7 Correct 3 ms 432 KB Output is correct
8 Correct 3 ms 468 KB Output is correct
9 Correct 3 ms 468 KB Output is correct
10 Correct 3 ms 400 KB Output is correct
11 Correct 3 ms 468 KB Output is correct
12 Correct 3 ms 440 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 340 KB Output is correct
2 Correct 2 ms 468 KB Output is correct
3 Correct 3 ms 436 KB Output is correct
4 Correct 3 ms 428 KB Output is correct
5 Correct 3 ms 468 KB Output is correct
6 Correct 3 ms 400 KB Output is correct
7 Correct 3 ms 432 KB Output is correct
8 Correct 3 ms 468 KB Output is correct
9 Correct 3 ms 468 KB Output is correct
10 Correct 3 ms 400 KB Output is correct
11 Correct 3 ms 468 KB Output is correct
12 Correct 3 ms 440 KB Output is correct
13 Correct 181 ms 1208 KB Output is correct
14 Correct 181 ms 1208 KB Output is correct
15 Correct 180 ms 1208 KB Output is correct
16 Correct 177 ms 1208 KB Output is correct
17 Correct 176 ms 1208 KB Output is correct
18 Correct 178 ms 1208 KB Output is correct
19 Correct 180 ms 1208 KB Output is correct
20 Correct 179 ms 1208 KB Output is correct
21 Correct 178 ms 1208 KB Output is correct
22 Correct 178 ms 1172 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 4022 ms 49460 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 264 ms 948 KB Output is correct
2 Correct 281 ms 6856 KB Output is correct
3 Correct 453 ms 65352 KB Output is correct
4 Correct 461 ms 65456 KB Output is correct
5 Correct 455 ms 65444 KB Output is correct
6 Correct 459 ms 65420 KB Output is correct
7 Correct 462 ms 65456 KB Output is correct
8 Correct 460 ms 65428 KB Output is correct
9 Correct 462 ms 65452 KB Output is correct
10 Correct 468 ms 65564 KB Output is correct
11 Correct 498 ms 65436 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 12 ms 1360 KB Output is correct
2 Correct 15 ms 2000 KB Output is correct
3 Correct 29 ms 1948 KB Output is correct
4 Correct 186 ms 2012 KB Output is correct
5 Correct 1759 ms 2544 KB Output is correct
6 Execution timed out 4030 ms 66440 KB Time limit exceeded
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 340 KB Output is correct
2 Correct 2 ms 468 KB Output is correct
3 Correct 3 ms 436 KB Output is correct
4 Correct 3 ms 428 KB Output is correct
5 Correct 3 ms 468 KB Output is correct
6 Correct 3 ms 400 KB Output is correct
7 Correct 3 ms 432 KB Output is correct
8 Correct 3 ms 468 KB Output is correct
9 Correct 3 ms 468 KB Output is correct
10 Correct 3 ms 400 KB Output is correct
11 Correct 3 ms 468 KB Output is correct
12 Correct 3 ms 440 KB Output is correct
13 Correct 181 ms 1208 KB Output is correct
14 Correct 181 ms 1208 KB Output is correct
15 Correct 180 ms 1208 KB Output is correct
16 Correct 177 ms 1208 KB Output is correct
17 Correct 176 ms 1208 KB Output is correct
18 Correct 178 ms 1208 KB Output is correct
19 Correct 180 ms 1208 KB Output is correct
20 Correct 179 ms 1208 KB Output is correct
21 Correct 178 ms 1208 KB Output is correct
22 Correct 178 ms 1172 KB Output is correct
23 Execution timed out 4022 ms 49460 KB Time limit exceeded
24 Halted 0 ms 0 KB -