Submission #306124
Source Code Expand
#include <bits/stdc++.h>
#define all(x) begin(x), end(x)
#define rall(x) (x).rbegin(),(x).rend()
#define sz(x) ((int)(x).size())
#define REP(i,b,n) for(int i=(int)(b);i<(int)(n);++i)
#define rep(i,n) REP(i,0,n)
#define repsz(i,v) rep(i,sz(v))
#define eb emplace_back
#define mt make_tuple
#define aur auto&
#define bit(n) (1LL<<(n))
using namespace std;
typedef long long ll;
//#define int long long
static const int INF = 1<<25;
static const double EPS = 1e-5;
template<class T>bool chmin(T&a,const T&b){if(a<=b)return false;a=b;return true;}
template<class T>bool chmax(T&a,const T&b){if(a>=b)return false;a=b;return true;}
inline ll h(const ll &a, const ll &b){
return a * 432083 + b * 93029031;
}
inline ll h(const pair<ll, ll> &a){ return h(a.first, a.second); }
bool solve(){
int n; cin >> n;
unordered_map<ll, int> in;
vector<pair<ll, ll>> inv;
rep(i, n){
ll x, y; cin >> x >> y;
in[h(x*2, y*2)] = i+1;
inv.emplace_back(x*2, y*2);
}
rep(i, n){
rep(j, i){
ll x = (inv[i].first + inv[j].first) / 2;
ll y = (inv[i].second + inv[j].second) / 2;
ll a = inv[i].first - x;
ll b = inv[i].second - y;
vector<int> res;
res.emplace_back(in[h(x+a, y+b)]);
res.emplace_back(in[h(x-b, y+a)]);
res.emplace_back(in[h(x-a, y-b)]);
res.emplace_back(in[h(x+b, y-a)]);
sort(all(res));
res.erase(unique(all(res)), res.end());
if(res.size() < 4) continue;
if(res[0] == 0) continue;
cout << 4 << endl;
rep(i, 4) cout << res[i] << endl;
return true;
}
}
cout << 0 << endl;
return true;
}
signed main(){
//cin.tie(0);
//ios_base::sync_with_stdio(0);
cout.setf(ios::fixed); cout.precision(10);
solve();
return 0;
}
// vim:set foldmethod=marker commentstring=//%s:
Submission Info
Submission Time |
|
Task |
C - Regular Polygon |
User |
MiSawa |
Language |
C++11 (GCC 4.8.1) |
Score |
100 |
Code Size |
2003 Byte |
Status |
AC |
Exec Time |
754 ms |
Memory |
40240 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
100 / 100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
subtask0_sample_01.txt, subtask0_sample_02.txt |
All |
subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_random01.txt, subtask1_random02.txt, subtask1_random03.txt, subtask1_random04.txt, subtask1_random05.txt, subtask1_random06.txt, subtask1_random07.txt, subtask1_random08.txt, subtask1_special01.txt, subtask1_special02.txt, subtask1_special03.txt, subtask1_special04.txt, subtask1_special05.txt, subtask1_special06.txt, subtask1_special07.txt, subtask1_special08.txt, subtask1_special09.txt, subtask1_special10.txt |
Case Name |
Status |
Exec Time |
Memory |
subtask0_sample_01.txt |
AC |
24 ms |
800 KB |
subtask0_sample_02.txt |
AC |
30 ms |
800 KB |
subtask1_random01.txt |
AC |
754 ms |
40240 KB |
subtask1_random02.txt |
AC |
721 ms |
40240 KB |
subtask1_random03.txt |
AC |
708 ms |
39604 KB |
subtask1_random04.txt |
AC |
718 ms |
39664 KB |
subtask1_random05.txt |
AC |
71 ms |
4420 KB |
subtask1_random06.txt |
AC |
62 ms |
4200 KB |
subtask1_random07.txt |
AC |
716 ms |
39732 KB |
subtask1_random08.txt |
AC |
714 ms |
39856 KB |
subtask1_special01.txt |
AC |
23 ms |
924 KB |
subtask1_special02.txt |
AC |
24 ms |
800 KB |
subtask1_special03.txt |
AC |
25 ms |
780 KB |
subtask1_special04.txt |
AC |
23 ms |
676 KB |
subtask1_special05.txt |
AC |
552 ms |
40240 KB |
subtask1_special06.txt |
AC |
229 ms |
15256 KB |
subtask1_special07.txt |
AC |
119 ms |
8176 KB |
subtask1_special08.txt |
AC |
50 ms |
2860 KB |
subtask1_special09.txt |
AC |
597 ms |
40108 KB |
subtask1_special10.txt |
AC |
25 ms |
800 KB |