Rating changes for last rounds are temporarily rolled back. They will be returned soon. ×

 
 
 
 
General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
124578896 Contestant:
Noam13
1548D1 - 27 C++17 (GCC 9-64) Accepted 358 ms 5108 KB 2021-08-01 18:59:10 2021-08-01 22:25:00
→ Source
#include <bits/stdc++.h>
using namespace std;
#define int int64_t
typedef pair<int, int> ii;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<ii> vii;
typedef vector<vii> vvii;
typedef vector<bool> vb;
typedef vector<vb> vvb;
#define x first
#define y second
#define pb push_back
#define loop(i,s,e) for(int i=(s);i<(e);i++)
#define loopr(i,s,e) for(int i=(e)-1;i>=(s);i--)
#define chkmax(a,b) a = max(a,b)
#define chkmin(a,b) a = min(a,b)
#define all(x) x.begin(),x.end()
const int INF = 1e18, MOD = 1e9 + 7;

template <class A, class B> pair<A,B> operator+(pair<A,B>& a, pair<A,B>& b) {
    return {a.x+b.x, a.y+b.y}; }
template <class A, class B> pair<A,B> operator-(pair<A,B>& a, pair<A,B>& b) {
    return {a.x-b.x, a.y-b.y}; }
template <class A, class B> istream& operator>>(istream& is, pair<A,B>& a) {
    return is >> a.x >> a.y; }
template <class A, class B> ostream& operator << (ostream& os, const pair<A,B>& a) {
    return os << "< " << a.x << " , " << a.y << " >"; }

template<class T> ostream &operator<<(ostream &os, vector<T> v) { os << '['; if (!v.empty()) { os << v[0]; loop(i, 1, v.size()) os << ',' << v[i]; } return os << ']'; }
template<class T> ostream &operator<<(ostream &os, set<T> v) { os << '{'; if (!v.empty()) { os << *v.begin(); for(auto it = ++v.begin(); it != v.end(); ++it) os << ',' << *it; } return os << '}'; }

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
auto DIST = uniform_int_distribution<int>(0, INF);

/*int solve(vii a, vii b){
    int n = a.size(), b = b.size(), ans = 0;
    
    return ans;
}*/
int solve(vii& p){
    int n = p.size(), ans = 0;
    // vi v(n); loop(i,0,n) v[i] = 
    int cnt[2][2];
    loop(a,0,2) loop(b,0,2) cnt[a][b] = 0;
    loop(i,0,n){
        int a = abs(p[i].x)%2, b = abs(p[i].y) % 2;
        if (!a && !b) ans += n-1 - cnt[a][b];
        else ans += cnt[a][b];
        cnt[a][b]++;
    }
    return ans;
}
int32_t main(){
    ios_base::sync_with_stdio(false);
    int n; cin>>n;
    vii a(n);
    loop(i,0,n) cin>>a[i], a[i].x/=2, a[i].y/=2;
    int ans = 0;
    loop(i,2,n){
        vii p;
        loop(j,0,i) p.pb(a[j]-a[i]);
        ans += solve(p);
    }
    cout << ans << endl;
    return 0;
}
/*
color a
cls
g++ d.cpp -o a & a
3
0 0
2 0
0 4

*/
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details