提出 #372168
ソースコード 拡げる
#include <bits/stdc++.h>
#define REP(i,n) for(int i=0;i<(int)(n);i++)
#define ALL(x) (x).begin(),(x).end()
using namespace std;
typedef long double ld;
typedef complex<ld> P;
typedef vector<P> VP;
const ld eps = 1e-6, pi = acos(-1.0);
ld dot (P a, P b) { return real(conj(a) * b); }
ld cross (P a, P b) { return imag(conj(a) * b); }
namespace std {
bool operator<(const P &lhs, const P &rhs) {
return lhs.real() == rhs.real() ? lhs.imag() < rhs.imag()
: lhs.real() < rhs.real();
}
}
struct L{ P a, b; };
struct C { P p; ld r; };
int ccw (P a, P b, P c) {
b -= a; c -= a;
if (cross(b, c) > eps) return 1; // counter clockwise
if (cross(b, c) < -eps) return -1; // clockwise
if (dot(b, c) < 0) return 2; // c--a--b on line
if (norm(b) < norm(c)) return -2; // a--b--c on line
return 0; // a--c--b on line
}
P is_ll(L s, L t){
P sv = s.b - s.a, tv = t.b - t.a;
return s.a + sv * cross(tv, t.a - s.a) / cross(tv, sv);
}
VP ConvexCut(const VP &ps, L l) {
VP Q;
for (int i = 0; i < (int)ps.size(); i++) {
P A = ps[i], B = ps[(i+1)%ps.size()];
if (ccw(l.a, l.b, A) != -1) Q.push_back(A);
if (ccw(l.a, l.b, A) * ccw(l.a, l.b, B) < 0)
Q.push_back(is_ll((L){A, B}, l));
}
return Q;
}
void query(VP &polygon, ld angle) {
cout << "? " << angle << endl;
ld y; cin >> y;
ld rad = -angle/180.0*pi;
P rot = P(cos(rad), sin(rad));
L l = (L){P(3000, y) * rot, P(-3000, y) * rot};
polygon = ConvexCut(polygon, l);
}
int main() {
cout << setprecision(12) << fixed;
VP polygon;
polygon.push_back(P( 2000, 2000));
polygon.push_back(P(-2000, 2000));
polygon.push_back(P(-2000, -2000));
polygon.push_back(P( 2000, -2000));
for (ld angle = 0.85; angle < 400; angle += 8)
query(polygon, angle);
VP poly = polygon;
int n = poly.size();
REP(i,n) REP(j,n) {
if (i == j) continue;
P vec = poly[i] - poly[j];
query(polygon, -arg(vec) / pi * 180.0);
}
int id = -1;
REP(i,polygon.size()) {
if (abs(polygon[i] - P(0, 0)) < eps) id = i;
}
assert(id >= 0);
int m = polygon.size();
assert(m <= 10);
REP(i,m) {
P p = polygon[(i+id)%m];
if (abs(polygon[(i+id+1)%m] - p) < eps) continue;
if (p.real() < 0) p += P(-eps, 0);
else p += P(eps, 0);
if (p.imag() < 0) p += P(0, -eps);
else p += P(0, eps);
cout << "! " << (int)(p.real()) << " " << (int)(p.imag()) << endl;
}
return 0;
}
提出情報
| 提出日時 |
|
| 問題 |
H - 回すだけ |
| ユーザ |
snakeCase |
| 言語 |
C++11 (GCC 4.9.2) |
| 得点 |
0 |
| コード長 |
2582 Byte |
| 結果 |
WA |
| 実行時間 |
2037 ms |
| メモリ |
1276 KiB |
ジャッジ結果
| セット名 |
All |
| 得点 / 配点 |
0 / 300 |
| 結果 |
|
| セット名 |
テストケース |
| All |
scrambled_00.txt, scrambled_01.txt, scrambled_02.txt, scrambled_03.txt, scrambled_04.txt, scrambled_05.txt, scrambled_06.txt, scrambled_07.txt, scrambled_08.txt, scrambled_09.txt, scrambled_10.txt, scrambled_11.txt, scrambled_12.txt, scrambled_13.txt, scrambled_14.txt, scrambled_15.txt, scrambled_16.txt, scrambled_17.txt, scrambled_18.txt, scrambled_19.txt, scrambled_20.txt, scrambled_21.txt, scrambled_22.txt, scrambled_23.txt, scrambled_24.txt, scrambled_25.txt, scrambled_26.txt, scrambled_27.txt, scrambled_28.txt, scrambled_29.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| scrambled_00.txt |
WA |
38 ms |
1272 KiB |
| scrambled_01.txt |
WA |
36 ms |
1128 KiB |
| scrambled_02.txt |
WA |
37 ms |
1260 KiB |
| scrambled_03.txt |
WA |
38 ms |
1204 KiB |
| scrambled_04.txt |
WA |
55 ms |
1220 KiB |
| scrambled_05.txt |
WA |
55 ms |
1196 KiB |
| scrambled_06.txt |
WA |
38 ms |
1200 KiB |
| scrambled_07.txt |
WA |
39 ms |
1144 KiB |
| scrambled_08.txt |
WA |
59 ms |
1148 KiB |
| scrambled_09.txt |
TLE |
2033 ms |
1176 KiB |
| scrambled_10.txt |
TLE |
2035 ms |
1156 KiB |
| scrambled_11.txt |
WA |
38 ms |
1188 KiB |
| scrambled_12.txt |
WA |
50 ms |
1180 KiB |
| scrambled_13.txt |
TLE |
2033 ms |
1184 KiB |
| scrambled_14.txt |
WA |
36 ms |
1196 KiB |
| scrambled_15.txt |
WA |
45 ms |
1208 KiB |
| scrambled_16.txt |
TLE |
2033 ms |
1124 KiB |
| scrambled_17.txt |
WA |
37 ms |
1132 KiB |
| scrambled_18.txt |
WA |
39 ms |
1180 KiB |
| scrambled_19.txt |
WA |
37 ms |
1140 KiB |
| scrambled_20.txt |
WA |
50 ms |
1240 KiB |
| scrambled_21.txt |
WA |
36 ms |
1180 KiB |
| scrambled_22.txt |
TLE |
2033 ms |
1164 KiB |
| scrambled_23.txt |
WA |
41 ms |
1144 KiB |
| scrambled_24.txt |
TLE |
2037 ms |
1080 KiB |
| scrambled_25.txt |
TLE |
2034 ms |
1276 KiB |
| scrambled_26.txt |
WA |
43 ms |
1196 KiB |
| scrambled_27.txt |
WA |
37 ms |
1272 KiB |
| scrambled_28.txt |
TLE |
2033 ms |
1264 KiB |
| scrambled_29.txt |
TLE |
2033 ms |
1264 KiB |