JAPLJ Contest A: Anemone
問題
http://judge.imoz.jp/page.php?page=view_problem&pid=42&cid=8
回答(1回目) - Wrong Answer - 30% Scored
適当すぎていろいろと根本的におかしかった
回答(2回目) - Wrong Answer - 30% Scored
コーナーケースでした
回答(3回目) - Accepted
#include <cstdio> #include <vector> using namespace std; pair<int,double> func(long long p) { if (p == 0) return make_pair(1, 2); long long a = 1; for (int i = 1; i < 32; ++ i, a <<= 1) { if (p == a+1) return make_pair(i, 0); if (p == 2*a) return make_pair(i, 0.5); if (p == a) return make_pair(i, 1); } return make_pair(-1, 0); } int main() { int p; scanf("%d", &p); pair<int,double> r = func(p); if (r.first >= 0) { printf("%d %.1f\n", r.first, r.second); } else { puts("-1"); } }