Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- android studio
- 강좌
- Avr
- solution
- 파일존재
- selectc
- application.mk
- 단축키
- C++
- mysql
- mathemetica
- PORTG
- Call
- 현재언어
- Get
- Java
- 0x
- 월별 카운트
- 하이퍼 터미널
- halliday
- Post
- Join
- 점점변하는값
- is_array
- cocos2d-x
- SQL
- unalias
- php
- function
- array
Archives
- Today
- Total
코딩도사의 코드정리
Queue 본문
#include <iostream> #include <vector> #include <algorithm> #include <fstream> #include <limits> using namespace std; #ifdef mycom ifstream fin("input"); #else #define fin cin #endif vector<int> v; vector<int> orders; int N, P, R; unsigned long long counter=0; void back(int order) { if(v.size() == orders.size()) { vector<int> arr; for(int i=0; i<orders.size(); i++) { arr.push_back(v[orders[i]]); } int myp, myr; myp = myr = 0; for(int i=0; i<arr.size(); i++) { bool allsmall = true; for(int j=0; j<=i; j++) { if(arr[j] > arr[i]) { allsmall = false; break; } } if(allsmall) // arr[i] 가 leftable 하다 { myp++; } } if(myp != P) return; for(int i=arr.size()-1; i>=0; i--) { bool allsmall = true; for(int j=arr.size()-1; j>i; j--) { if(arr[j] > arr[i]) { allsmall = false; break; } } if(allsmall) // arr[i] 가 rightable 하다 { myr++; } } if(myr != R) return; counter++; } else { for(int i=0; i<v.size(); i++) { if( find(orders.begin(), orders.end(), i) == orders.end() ) { vector<int> arr; for(int i=0; i<orders.size(); i++) { arr.push_back(v[orders[i]]); } int myp, myr; myp = myr = 0; for(int i=0; i<arr.size(); i++) { bool allsmall = true; for(int j=0; j<=i; j++) { if(arr[j] > arr[i]) { allsmall = false; break; } } if(allsmall) // arr[i] 가 leftable 하다 { myp++; } } if(myp > P) return; orders.push_back(i); back(i); orders.pop_back(); } } } } int main() { int mycase; fin >> mycase; while(fin >> N >> P >> R) { v.clear(); for(int i=1; i<=N; i++) { v.push_back(i); } counter = 0; back(0); cout << counter << endl; } return 0; }
'컴퓨터 이야기 > C++' 카테고리의 다른 글
나머지 연산자의 동작. (2) | 2011.01.13 |
---|---|
strlen 따라잡기 in KLDP.ORG (0) | 2011.01.13 |
Little Bishops (0) | 2011.01.08 |
순열 (0) | 2011.01.07 |
부분집합 (0) | 2011.01.07 |