Educational Codeforces Round 007. A
A. Infinite Sequence 문제 https://codeforces.com/contest/622/problem/A 문제요약 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, ... 의 규칙으로 나열되는 수열의 n번째 수는 얼마인가? ex) 55번째는 10이다. 풀이 n(n+1)/2번째 수는 n이다. 그리고 그 이후 n+1개 수만큼 나열된다. 즉 55번째를 구하려면 45번째 이후부터 10개의 수가 각각 1, 2, 3, ~, 10임을 알고 10을 찾으면 된다. 수 범위가 10^14이므로 long long을 써주자 소스코드 #include typedef long long ll; int main(){ ll n, k; scanf("%lld",&n); for(k=1; k*(k..
Educational Codeforces Round 001. A, B, C, D
A. Tricky Sum 문제 https://codeforces.com/contest/598/problem/A 문제요약 N값이 주어지면 2의 0, 1, ... , inf 제곱들에 대해 음수로 더하고 그 이외 수에 대해 양수로 더한 합을 출력해야한다. 풀이 1+2+...+2^(n-1) = 2^n - 1임을 알고 있을 때 전체에서 2의 제곱수들에 대해 두번 빼주면 된다. 즉, 수식으로 나타내면 다음과 같다. N(N+1)/2 - 2(2^[log_2{N}] -1) 소스코드 #include typedef long long ll; int main(){ int T; scanf("%d",&T); while(T--){ ll n, p=1; scanf("%lld",&n); for(int t=n; t; t>>=1, p1)-(..