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 |
谁帮我看看我的代码呀?#include <iostream> #include <cstdio> #include <vector> #include <algorithm> #include <cstdlib> #include <cmath> using namespace std; int main() { int N; int Q; while(scanf("%d%d", &N, &Q) != EOF) { vector<int> Height(N); int K = int(sqrt(N + 0.0)); if(K*K != N) { ++ K; } vector<int> LocalMax(K); vector<int> LocalMin(K); int j = 0; int M = N / K; int TmpMax = 0; int TmpMin = 1000000; for(int i = 0; i < K; ++ i) { int TmpMax = 0; int TmpMin = 1000000; for(int j = 0; j < M; ++ j) { cin >> Height[i*M + j]; if(TmpMax < Height[i*M + j]) { TmpMax = Height[i*M + j]; } if(TmpMin > Height[i*M + j]) { TmpMin = Height[i*M + j]; } } LocalMax[i] = TmpMax; LocalMin[i] = TmpMin; } //copy(LocalMax.begin(), LocalMax.end(), ostream_iterator<int>(cout, " ")), cout << endl; //copy(LocalMin.begin(), LocalMin.end(), ostream_iterator<int>(cout, " ")), cout << endl; for(int i = 0; i < Q; ++ i) { int A; int B; scanf("%d%d", &A, &B); if(A == B) { printf("0\n"); } else { int m = (A - 1) / M; int n = (B - 1) / M ; TmpMax = 0; TmpMin = 1000000; if(n == m) { for(int j = A - 1; j < B; ++ j) { if(TmpMax < Height[j]) { TmpMax = Height[j]; } if(TmpMin > Height[j]) { TmpMin = Height[j]; } } } else { for(int j = A - 1; j < (m + 1)*M && j < N; ++ j) { if(TmpMax < Height[j]) { TmpMax = Height[j]; } if(TmpMin > Height[j]) { TmpMin = Height[j]; } } for(int j = n*M; j < B && j < N; ++ j) { if(TmpMax < Height[j]) { TmpMax = Height[j]; } if(TmpMin > Height[j]) { TmpMin = Height[j]; } } if(n - m >= 2) { TmpMax = max(TmpMax, *max_element(LocalMax.begin() + (m + 1), LocalMax.begin() + n)); TmpMin = min(TmpMin, *min_element(LocalMin.begin() + (m + 1), LocalMin.begin() + n)); } } int Max = TmpMax; int Min = TmpMin; printf("%d\n", Max - Min); } } } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator