Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
本来玩得挺开心,被这道郁闷了, 那里不对了?#include <iostream> #include <vector> using namespace std; vector<pair<int, int> > a; void run(__int64 n, int dep) { __int64 i; int j; for (i = 1, j = 0; i <= n; i += i, ++j); i /= 2, --j; if ((n - i) % 3) i /= 2, --j; a.push_back(make_pair(j, dep)); n -= i; if (n == 0) return; j = 0; while (n % 3 == 0) { n /= 3; ++j; } run(n, dep + j); } int main() { int casenum, num, j; __int64 n; scanf("%d", &casenum); for (num = 1; num <= casenum; ++num) { a.clear(); scanf("%I64d", &n); printf("%d", num); j = 0; while (n % 3 == 0) { n /= 3; ++j; } run(n, j); printf(" %d", a.size()); for (vector<pair<int, int> >::iterator it = a.begin(); it != a.end(); ++it) printf(" [%d %d]", it->first, it->second); puts(""); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator