var n,i,j:int64;d:array[1..2,1..30]of real;x,y,z,a:real;beginreadln(n);x:=0;y:=0;for i:=1 to n do begin readln(d[1][i],d[2][i]); x+=d[1][i]; y+=d[2][i];end; writeln(x:0:0,' ',y:0:0);a:=1e9;for i:=1 to n do begin x:=0;y:=0; for j:=1 to n do begin if(ij) then begin x+=d[1][j]; y+=d[2][j]; end; end; z:=x*x+y*y; z:=sqrt(z); if a>z then a:=z;end; write(a:0:2);end. 풀이 : 브루트 포스 0. 선분을 입력받습니다. 그러면서 ..
var n,i,j,k,x,y,c,d:int64;r:real;a,b:array[1..100] of real;beginreadln(n,r);r:=r*r;for i:=1 to n do begin readln(a[i],b[i]);end;for i:=-100 to 100 do begin for j:=-100 to 100 do begin y:=n; for k:=1 to n do begin if r 아래 c언어로 같은 문제를 푼 것이 있습니다.https://h202.tistory.com/829

var i,n:int64;a,b:array[1..6]of int64; //변수beginreadln(n); //n개의 직육면체readln(b[1],b[2],b[3],b[4],b[5],b[6]); //첫번째 직육면체for i:=2 to n do begin //2번째 부터의 직육면체readln(a[1],a[2],a[3],a[4],a[5],a[6]); //직육면체들의 교집합은 직육면체, 이 교집합의 두 꼭짓점의 좌표들을 구합니다.//좌표값이 작은 꼭짓점 구하기if a[1]>b[1] then b[1]:=a[1];if a[2]>b[2] then b[2]:=a[2];if a[3]>b[3] then b[3]:=a[3];//좌표값이 큰 꼭짓점 구하기if a[4] 0으로 if a[1] 풀이 : 기하학 문제에서는 x,y,z..
var n,i:int64; a,b,c,d,e,f:real;beginreadln(n);for i:=1 to n do beginreadln(a,b,c);a:=a*3600+b*60+c;b:=b*720+c*12;c:=c*720;d:=abs(a-b);if d>21600 then d:=43200-d;e:=abs(a-c);if e>21600 then e:=43200-e;f:=abs(b-c);if f>21600 then f:=43200-f;if d>e then d:=e;if d>f then d:=f;writeln((d*360)/43200);end;end. 풀이 : 아날로그 시계 아날로그 시계를 43200 등분 했다고 생각하고 풀었습니다 (1시간 간격은 3600) 초가 움직이면서 분침, 시침이 움직이는 것도 고려하였습..
var r,c,d,e,i,j:int64; a,b:array[1..10] of int64; s:string;beginreadln(r,c); d:=99;for i:=1 to 10 do begin a[i]:=0; b[i]:=0; end;for i:=1 to 10 do beginreadln(s); for j:=1 to 10 do begin if s[j]='o' then begin a[i]:=1; b[j]:=1; end; end;end;for i:=1 to 10 do for j:=1 to 10 do if (a[i]=0) and (b[j]=0) then begin e := abs(r-i)+abs(c-j); if d>e then d:=e; end;write(d);end. 풀이 : 기하학 0. (r,c) 좌표를 ..

var n,a,b,c,i:int64;beginreadln(n);c:=n*2; b:=0;for i:=1 to n do beginread(a);c+=a*2+abs(a-b);b:=a;end;write(c+a);end. 풀이 : 기하학 0. 변수의 타입은 정수형1. 위 아래는 반드시 겉넓기가 1입니다. 고로 위 아래의 겉넓이는 n*2 입니다.2. b는 왼쪽에 있는 직육면체의 넓이를 의미합니다. 처음엔 없으니 0으로 초기화 합니다.3. n개를 입력받는데, 여기서 a*2는 특정 높이의 직육면체의 앞 뒤 겉넓이를 의미하며, abs(a-b)는 특정 높이의 직육면체의 왼쪽 겉넓이를 의미합니다.4. b:=a 을 하는 이유는 왼쪽에 있는 직육면체를 최근껄로 바꾸기 위함입니다.5. 출력은 c+a 인데 여기서 +a 을 한 이유..
var a,b,c,d,e,f,g,h,w,x,y,z:real;beginreadln(a,b);readln(c,d);readln(e,f);read(g,h);x:=sqrt(sqr(c-e)+sqr(d-f));y:=sqrt(sqr(c-g)+sqr(d-h));z:=sqrt(sqr(e-g)+sqr(f-h));w:=sqrt(sqr(a-c)+sqr(b-d))+z;if xc then w:=c;c:=sqrt(sqr(a-g)+sqr(b-h))+x;if yc then w:=c;writeln(trunc(w));end.https://www.acmicpc.net/problem/17286 풀이 : 피타고라스의 정리를 이용한 거리 계산 0. 변수 type은 실수형으로 합니다.1. 사람이 3명이므로 사람간의 거리는 총 3개가 나옵니다...
var a:real;begin read(a);write(trunc(a));end. 1. 실수형으로 입력을 받는다.2. read로 읽는다. 하나만 입력받기에 굳이 readln을 할 필요는 없다.3. write로 출력한다. 문제에서 소수점을 내림한 것을 출력하라고 하므로 trunc () 을 사용한다. trunc() ex) 123.23233 -> 123 -32.4334 -> -32 말 그대로 소수점만을 제거하낟. write(1.2323 : 0 : 3) 이렇게 특정 소수점만 출력하도록 하는 출력 형식이 존재하나 이것은 알아서 반올림을 해버린다. ex) 2.7:0:0 : 2.7 에서 소수점을 출력하지 않는다. (여기서 소수점에 대한 반올림이 일어난다) 결과는 3 으로 나온다. 고로 tru..
var n,m,i,a:int64;begina:=1;readln(n,m);if n 풀이 : 모듈러 연산 모듈러 연산은 (산술) 분배법칙이 성립합니다. (A*B*C)%M ->( (A%M)*(B%M)*(C%M) ) % M 이런식으로 성립합니다. 그러나 범위가 크기 때문에 10^18까지 하기엔 무리가 있습니다.그렇지만 n >= m 인 경우 n!에는 m이 존재하므로 m 은 n!의 약수임을 알 수 있으며 이는 (n>=m) n! % m = 0 이란 의미입니다. 문제에서 주어진 2(10^7-1)! 까지는 반복적으로 나머지 연산을 해도 시간안에 처리가 가능합니다.
- Total
- Today
- Yesterday
- 브루트포스
- 오프라인 쿼리
- 누적 합
- PASCAL
- 기하학
- 최대공약수
- 그리디
- 정렬
- 1835
- BFS
- 1835번
- C언어
- 세그먼트 트리
- 최소 스패닝 트리
- DFS
- XOR
- find
- DP
- 스택
- 백준
- 누적합
- Krustal
- 덱
- Lazy Propagation
- Segment Tree
- java
- 플로이드
- 그래프
- C++
- union
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |