Submission #16913966


Source Code Expand

Copy
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <queue>
#include <ctime>
#include <cassert>
#include <complex>
#include <string>
#include <cstring>
#include <chrono>
#include <random>
#include <bitset>
using namespace std;

#ifdef LOCAL
	#define eprintf(...) fprintf(stderr, __VA_ARGS__);fflush(stderr);
#else
	#define eprintf(...) 42
#endif

using ll = long long;
using ld = long double;
using uint = unsigned int;
using ull = unsigned long long;
template<typename T>
using pair2 = pair<T, T>;
using pii = pair<int, int>;
using pli = pair<ll, int>;
using pll = pair<ll, ll>;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll myRand(ll B) {
	return (ull)rng() % B;
}

#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second

clock_t startTime;
double getCurrentTime() {
	return (double)(clock() - startTime) / CLOCKS_PER_SEC;
}

ll euclid(ll x, ll y, ll &k, ll &l) {
	if (y == 0) {
		k = 1;
		l = 0;
		return x;
	}
	ll g = euclid(y, x % y, l, k);
	l -= k * (x / y);
	return g;
}

int main()
{
	startTime = clock();
//	freopen("input.txt", "r", stdin);
//	freopen("output.txt", "w", stdout);

	ll n;
	scanf("%lld", &n);
	ll ans = 2 * n;
	vector<ll> d;
	for (ll x = 2; x * x <= n; x++) {
		if (n % x) continue;
		ll y = 1;
		while(n % x == 0) {
			n /= x;
			y *= x;
		}
		d.push_back(y);
	}
	if (n > 1) d.push_back(n);
	bool ok = false;
	for (int i = 0; i < (int)d.size(); i++) {
		if (d[i] % 2 == 0) {
			d[i] *= 2;
			ok = true;
		}
	}
	if (!ok) d.push_back(2);

	int m = (int)d.size();
	assert(m < 18);
	for (int mask = 0; mask < (1 << m); mask++) {
		ll x = 1, y = 1;
		for (int i = 0; i < m; i++) {
			if ((mask >> i) & 1)
				x *= d[i];
			else
				y *= d[i];
		}
		if (y == 1) continue;
		ll k, l;
		assert(euclid(x, y, k, l) == 1);
		l %= x;
		if (l <= 0) l += x;
		k = l * y - 1;
		ans = min(ans, k);	
	}
	printf("%lld\n", ans);

	return 0;
}

Submission Info

Submission Time
Task B - Sum is Multiple
User Um_nik
Language C++ (Clang 10.0.0)
Score 0
Code Size 2202 Byte
Status WA
Exec Time 279 ms
Memory 3236 KB

Compile Error

./Main.cpp:106:3: warning: variable 'l' is uninitialized when used here [-Wuninitialized]
                l %= x;
                ^
./Main.cpp:104:10: note: initialize the variable 'l' to silence this warning
                ll k, l;
                       ^
                        = 0
1 warning generated.

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 600
Status
WA × 2
AC × 1
WA × 41
Set Name Test Cases
Sample 00-sample-01.txt, 00-sample-02.txt
All 00-sample-01.txt, 00-sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt
Case Name Status Exec Time Memory
00-sample-01.txt WA 7 ms 3228 KB
00-sample-02.txt WA 2 ms 3084 KB
01-01.txt AC 2 ms 3156 KB
01-02.txt WA 22 ms 3016 KB
01-03.txt WA 2 ms 3108 KB
01-04.txt WA 24 ms 3236 KB
01-05.txt WA 74 ms 3024 KB
01-06.txt WA 16 ms 3012 KB
01-07.txt WA 77 ms 3108 KB
01-08.txt WA 7 ms 3084 KB
01-09.txt WA 6 ms 3108 KB
01-10.txt WA 252 ms 3092 KB
01-11.txt WA 242 ms 3236 KB
01-12.txt WA 256 ms 3100 KB
01-13.txt WA 264 ms 3156 KB
01-14.txt WA 214 ms 3032 KB
01-15.txt WA 279 ms 3052 KB
01-16.txt WA 187 ms 3088 KB
01-17.txt WA 116 ms 3152 KB
01-18.txt WA 3 ms 3008 KB
01-19.txt WA 2 ms 3020 KB
01-20.txt WA 2 ms 3236 KB
01-21.txt WA 2 ms 3080 KB
01-22.txt WA 2 ms 3060 KB
01-23.txt WA 2 ms 3156 KB
01-24.txt WA 2 ms 3232 KB
01-25.txt WA 2 ms 3012 KB
01-26.txt WA 2 ms 3228 KB
01-27.txt WA 2 ms 3016 KB
01-28.txt WA 1 ms 3232 KB
01-29.txt WA 2 ms 3196 KB
01-30.txt WA 3 ms 3104 KB
01-31.txt WA 2 ms 3104 KB
01-32.txt WA 2 ms 3080 KB
01-33.txt WA 2 ms 3224 KB
01-34.txt WA 2 ms 3016 KB
01-35.txt WA 2 ms 3084 KB
01-36.txt WA 2 ms 3236 KB
01-37.txt WA 2 ms 3020 KB
01-38.txt WA 2 ms 3232 KB
01-39.txt WA 2 ms 3040 KB
01-40.txt WA 2 ms 3056 KB