Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
poj的编译器我不想吐槽了对vector<string>用sort,竟然不能用默认的比较 好吧那我手写个compare吧 写成 bool compare(const string &s1, const string &s2){ return s1 < s2; } ,竟然还不行,非逼我改成这样: bool compare(const string &s1, const string &s2){ return strcmp(s1.c_str(), s2.c_str()) == -1; } 你说这编译器是不是个智障啊!!! 附代妈 #include <iostream> #include <stdio.h> #include <algorithm> #include <vector> #include <string.h> using namespace std; bool compare(const string &s1, const string &s2){ return strcmp(s1.c_str(), s2.c_str()) == -1; } int main() { int cnt = 0; int N; while(1){ cin >> N; if(N == 0) break; cnt++; int has[60][60] = {0}; char id[26]; int x[26], y[26]; for(int i = 0; i < N; i++){ cin >> id[i] >> x[i] >> y[i]; has[x[i]][y[i]] = id[i]; } vector<string> vs; for(int i = 0; i < N; i++){ for(int j = 0; j < N; j++){ if(i == j) continue; if(x[i] >= x[j] || y[i] <= y[j]) continue; int id1 = id[i], id2 = has[x[j]][y[i]], id3 = id[j], id4 = has[x[i]][y[j]]; if(id2 != 0 && id4 != 0){ string temp = ""; temp += (char) id1; temp += (char) id2; temp += (char) id3; temp += (char) id4; vs.push_back(temp); } } } sort(vs.begin(), vs.end(), compare); int sz = vs.size(); printf("Point set %d:", cnt); if(!sz){ printf(" No rectangles"); } else{ for(int i = 0; i < sz; i++){ if(i%10 == 0) printf("\n"); printf(" %s", vs[i].c_str()); } } printf("\n"); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator