# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1086339 | 8pete8 | Nice sequence (IZhO18_sequence) | C++17 | 5 ms | 860 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<stdio.h>
#include <stdlib.h>
#define int long long
int compare(const void* a, const void* b){
return (*(int*)a - *(int*)b);
}
const int mx=1e9;
int k=0;
int re(int m,int n){
k+=(m/n)*n;
if(m%n==0)return m;
return re(n,m%n);
}
void solve(){
k=0;
int n,m;scanf("%lld %lld",&n,&m);
int mul=1;
if(n>m){
n^=m,m^=n,n^=m;
mul=-1;
}
int x=re(m,n);//when to repeat?
k--;
if(m%n==0){
printf("%lld\n",m-1);
for(int i=0;i<m-1;i++)printf("%lld ",-mul);
printf("\n");
return;
}
int ans[k],val;
if(n==1)val=0;
else val=(mx-1)/(x-1);
int boc1=(n/x),aoc1=n-boc1,boc2=(m/x),aoc2=m-boc2;
//a first
int b=(aoc1+aoc2),a=-(boc2+boc1);
if((a*aoc1)+(b*boc1)>0)a*=-1,b*=-1;
int last=-mx;
for(int i=0;i<k;i++){
if(((i%x)==(x-1)&&(i-last-1)>(n))||((i-last-1)==n-1)){
ans[i]=b;
last=i;
}
else ans[i]=a;
}
printf("%lld\n",k);
for(int i=0;i<k;i++)printf("%lld ",mul*ans[i]);
printf("\n");
}
int32_t main(){
int t;scanf("%lld",&t);
while(t--)solve();
}
/*
+++-
3
3 1
2 3
1 1
case
*/
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |