Submission #1078359

# Submission time Handle Problem Language Result Execution time Memory
1078359 2024-08-27T15:49:21 Z vahagng Star triangles (IZhO11_triangle) C++17
100 / 100
371 ms 16064 KB
//----------vahagng----------//
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
using namespace std;
// using namespace __gnu_pbds;

// template <class T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

#ifndef ONLINE_JUDGE
#define dbg(x) cerr << #x <<" "; print(x); cerr << endl;
#else
#define dbg(x)
#endif

void print(long long t) {cerr << t;}
void print(int t) {cerr << t;}
void print(string t) {cerr << t;}
void print(char t) {cerr << t;}
void print(double t) {cerr << t;}
void print(long double t) {cerr << t;}
void print(unsigned long long t) {cerr << t;}

template <class T, class V> void print(pair <T, V> p);
template <class T> void print(vector <T> v);
template <class T> void print(set <T> v);
template <class T, class V> void print(map <T, V> v);
template <class T> void print(multiset <T> v);
template <class T, class V> void print(T v[],V n) {cerr << "["; for(int i = 0; i < n; i++) {cerr << v[i] << " ";} cerr << "]";}
template <class T, class V> void print(pair <T, V> p) {cerr << "{"; print(p.first); cerr << ","; print(p.second); cerr << "}";}
template <class T> void print(vector <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T> void print(set <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T> void print(multiset <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T, class V> void print(map <T, V> v) {cerr << "[ "; for (auto i : v) {print(i); cerr << " ";} cerr << "]";}

#define ll long long
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define ld long double
#define sz(v) v.size()
#define endl '\n'

const ll inf = 1e18, mod = 1e9+7, mod1 = 998244353;

void SetIO(string str = "") {
    if (str != "") {
        freopen((str + ".in").c_str(), "r", stdin);
        freopen((str + ".out").c_str(), "w", stdout);
    } else {
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    }
}
 
void FastIO() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
}

ll mult(ll a, ll b){
    return (a*b)%mod;
}

ll add(ll a, ll b){
    return (a + b)%mod;
}

ll sub(ll a, ll b){
    return (a - b + mod)%mod;
}

/*
4 2 4
2 3
0 2
0 3
0 6
0 7
*/

// expected output
/*
2
3
1
*/

ll power(ll a, ll b){
    ll res = 1;
    while(b--){
        res *= a;
    }
    return res;
}

const int N = 3e5 + 10, M = N;

vector<pair<int,int>>v;
map<ll,ll> cx, cy;
ll n;

void solve(int tc){
    cin >> n;
    for(int i = 0; i < n; i++){
        int x, y;
        cin >> x >> y;
        cx[x]++, cy[y]++;
        v.push_back({x, y});
    }
    ll ans = 0;
    for(int i = 0; i < n; i++){
        auto [x, y] = v[i];
        cx[x]--, cy[y]--;
        ans += cx[x] * cy[y];
        cx[x]++, cy[y]++;
    }
    cout << ans << endl;
}

void precalc(){
}

int main() {
    // SetIO("");
    FastIO();
    int test_case = 1;
    // cin >> test_case;
    precalc();
    int cnt = 1;
    while (test_case--){
      solve(cnt++);
    }
    return 0;
}

Compilation message

triangle.cpp: In function 'void SetIO(std::string)':
triangle.cpp:47:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |         freopen((str + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
triangle.cpp:48:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   48 |         freopen((str + ".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
triangle.cpp:50:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   50 |         freopen("input.txt", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
triangle.cpp:51:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |         freopen("output.txt", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 1 ms 532 KB Output is correct
12 Correct 6 ms 1116 KB Output is correct
13 Correct 6 ms 1372 KB Output is correct
14 Correct 11 ms 1764 KB Output is correct
15 Correct 121 ms 7084 KB Output is correct
16 Correct 131 ms 7572 KB Output is correct
17 Correct 121 ms 7192 KB Output is correct
18 Correct 118 ms 7112 KB Output is correct
19 Correct 335 ms 15292 KB Output is correct
20 Correct 242 ms 10172 KB Output is correct
21 Correct 371 ms 16064 KB Output is correct
22 Correct 353 ms 14892 KB Output is correct