r,f 좌표를 통해 고객이 어디에 해당하는지 분류하는 문제다.r은 현재시간 - 가장 최근 접속시간f는 유저의 접속 횟수다 맵을 이용해서 를 저장하면 문제를 풀 수있다! 근데 소스가 더럽다!처음에 틀렸는데 다음 코드를 추가하니 맞았다.cin이 느려서 그런가보다 ios::sync_with_stdio(false); cin.tie(0); 소스코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#include #include #include #include #include using namespace st..
3개의 점이 직선인지 아닌지 판단하는 문제다CCW를 이용하면 쉽게 판단할 수 있다CCW를 사용해서 직선이면 0을 리턴하므로 0인지 아닌지만 확인하자! 소스코드1234567891011121314#include using namespace std;int ccw(int x1, int y1, int x2, int y2, int x3, int y3) { int ret = x1*y2 + x2*y3 + x3*y1; ret -= (y1*x2 + y2*x3 + y3*x1); return ret;} int main() { int x1, y1, x2, y2, x3, y3; cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3; if (ccw(x1, y1, x2, y2, x3, y3)==0) puts("WH..
문제 제목부터 디스크립션까지 너무 좋은 문제다 문제는 SCC의 기본문제이다dfs로 풀면 cycle때문에 풀수가없다! 문제를 푸는방법은1. SCC를 통해 cycle이 없는 그래프로 만든다2. 각각의 컴포넌트의 indegree를 계산한다3. indegree가 0인 곳에만 바이러스를 넣어야 최소이다!! 소스코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#include #include #include #include #include using namespace std;int n, ..
(301,301) 까지 가면서 다 보면 된다처음에 d[300][300][600] 해서 시간까지 테이블로 잡으려다가 메모리 보고 포기했다 ㅎㅎ 시간을 잡지않아도 (0,0)에서 위,오른쪽만 움직이기 때문에시간 = x+y가 된다. 따라서 m-x+y가 현재위치에서의 사탕 수 이다 소스코드123456789101112131415161718192021222324252627#include #include #include using namespace std;int d[303][303];bool arr[303][303];int n, m; int go(int x, int y) { if (x >= 301 || y >= 301) return 0; int&ret = d[x][y]; if (ret != -1) return ret;..