| ||||||||||
| 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