| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1285722 | ggillianjiang | Dancing Elephants (IOI11_elephants) | C++20 | 0 ms | 0 KiB |
#include "elephants.h"
#include <cstdio>
#include <vector>
#include <utility>
using namespace std;
#define loop(s) for(int a = 0; a < s; ++a)
using vec_t = vector<int>;
using p_t = pair<int, pair<int, int> >;
using vp_t = vector< p_t >;
using vv_t = vector< vector<int> >;
int n, l, least;
vec_t x;
vec_t pos;
vp_t cameras;
vv_t frames;
void init(int N, int L, int X[])
{
int M;
n=N;
l=L;
loop(sizeof(X)/sizeof(X[0])){
frames[X[a]/l].push_back(X[a]);
if(X[a]/l != X[a-1]/l) least++;
}
printf("%d", least);
loop(M){
update();
}
}
int update(int i, int y)
{
bool empty;
loop(frames[i/l].size()){
if(frames[i/l][a]==-1) continue;
else if(frames[i/l][a]==i && a==frames[i/l].size()-1) frames[i/l].pop_back();
else if(frames[i/l][a]==i) frames[i/l][a] = -1;
else empty = false;
}
if(empty) least--;
frames[y/l].push_back(y);
if(frames[y/l]!=frames[i/l]) least++;
printf("%d", least);
}
