top of page

소스 코드 제출

공개·회원 72명

GARODUNG

#include <stdio.h>

#include <stdlib.h>

long long int l,a[2][510000]={},g[300100] = {};

int n,k,t=0,b=0;

void eq(long long int x,int z)

{

if(t <= k) {

printf(" Eq:%1lld %1d\n",x,z);

a[0][t] = x;

a[1][t++] = z;

}

}

///아니 Lua하다 오니깐 if문에 ()있는거 어색함;;

void dq()

{

int z = a[1][b];

long long int x = a[0][b];

if(abs(g[z] - x ))

printf("%4d ,z:%4d x:%4lld g:%4lld t:%4d b:%4d\n",abs(g[z] - x),z,x,g[z],t,b);

//printf("%d\n",abs(g[z] - x));

if(x == g[z]) {

if(x > 0) {

if(z == 0 || n == 1)

{

eq(x-1,z);

}

else if(x-1!=g[z-1]) {

eq(x-1,z);

}

}

if(x < l) {

if(z==n || n == 1) {

eq(x+1,z);

}

else if(z < n && abs(g[z] - (x+1)) < abs(g[z+1] - (x+1))) {

eq(x+1,z);

}

}

}

else if(g[z] < x) {

if(x < l) {

if(n==1) {

eq(x+1,z);

}

else if(abs(g[z] - x) < abs(g[z+1] - x)) {

printf("%d<%d\n",abs(g[z] - x),abs(g[z+1] - x));

eq(x+1,z);

}

}

}

else if(g[z] > x) {

if(x > 0) {

if(n==1) {

eq(x-1,z);

}

else if(abs(g[z] - x+1) < abs(g[z-1] - x+1)) {

eq(x-1,z);

}

}

}

b++;

}


int main()

{

int i;

scanf("%lld %d %d",&l,&n,&k);

for(i=0;i<n;i++) {

scanf("%lld",&g[i]);

eq(g[i],i);

}

while(b < k) {

dq();

}

}


/** Test CaseBROOO

10 20

/0 1 2 3 4 5 6 7 8 9 10

/10 9 8 7 6 5 4 3 2 1 0

/0 1 2 3 4 5 4 3 2 1 0

success

4000 20 4001

0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 3200 3400 3600 3800

success

10 5 11

0 2 4 6 8

success

100 50 101

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28

30 32 34 36 38 40 42 44 46 48 50

52 54 56 58 60 62 64 66 68 70 72 74 76 78 80

82 84 86 88 90 92 94 96 98

success

1000000000000000000 1 500001

Failed

25 5 26

0 1 12 24 25


0

1

2

3

4

5

6

7

7

8

9

10

11

12

13

14

15

16

17

19

20

21

22

23

24

25

*/

1회 조회
주소 : 경기도 용인시 광교중앙로 302 블루 스퀘어 602호
연락처 : 031) 216 - 1546 ,     031) 215 - 1546
사업자등록번호 : 465-92-00916
​학원 등록 제 4603호
bottom of page