# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
208302 | Sho10 | Seats (IOI18_seats) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/*
ID: Sho10
LANG: C++
*/
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10
#define ll long long int
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define all(a) (a).begin(), (a).end()
#define sz size
#define f first
#define s second
#define pb push_back
#define er erase
#define in insert
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
pair<ll,ll>v[5005];
ll n,m;
void give_intial_chart(int H,int W,vector<ll>R,vector<ll>C){
n=H;
m=W;
for(ll i=0;i<R.size();i++)
{
v[i].f=R[i];
v[i].s=C[i];
}
}
ll swap_seats(int a,int b){
swap(v[a],v[b]);
ll x1,y1,s1,s2;
x1=v[0].f;
y1=v[0].s;
s1=v[0].f;
s2=v[0].s;
ll ans=1;
for(ll i=1;i<n*m;i++)
{
while(v[i].f<x1){
x1--;
s=s+s2-y1+1;
}
while(s1<v[i].f){
s1++;
s=s+s2-y1+1;
}
while(v[i].s<y1){
y1--;
s=s+s1-x1+1;
}
while(s2<v[i].s){
s2++;
s=s+s1-x1+1;
}
if(s==i+1){
ans++;
}
}
return ans;
}