| ||||||||||
| 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 | |||||||||
高手看看为什么总是Time Limit Exceeded?#include <iostream>
using namespace std;
bool legal(int m, int k)
{
int i, a = 0;
bool legal1 = true;
for (i = 1; i <= k; i++)
{
int temp = (a + m - 1) % (2 * k + 1 - i);
if (temp < k || temp > 2 * k - i){
legal1 = false;
break;
}
a = temp;
}
return legal1;
}
int main(int argc, char* argv[])
{
int k;
while (cin >> k)
{
if(k == 0) return 0;
int m1, m2;
for(m1 = 0, m2 = 1 ; !legal(m1, k) && !legal(m2, k); m1 += (k+1), m2 += (k+1));
{
if(legal(m1, k)) cout << m1 << endl;
else if(legal(m2, k)) cout << m2 << endl;
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator