Paste will expire never.
- // Меньшиков. Тренировка 14.
- // 14E. Поле для крикета [cricket]
- // O(N*N) для перебора угла +
- // O(N) нахождение длины
- // ibelyaev: 11Jan2011
- #include <iostream>
- #include <cstdio>
- #include <vector>
- #include <set>
- #include <utility>
- using namespace std;
- typedef vector<pair<int,int> > POINTS;
- #define mp make_pair
- #define X(i) mas[i].first
- #define Y(i) mas[i].second
- int n,W,H;
- POINTS mas;
- void input()
- {
- cin>>n>>W>>H;
- int x,y;
- for (int i=0;i<n;i++) {
- cin>>x>>y;
- mas.push_back(mp(x,y));
- }
- mas.push_back(mp(0,0));
- n = mas.size();
- }
- void solve()
- {
- int resX = 0, resY = 0, resSide = 1;
- int curX, curY, curSide;
- for (int i = 0; i<n; i++) {
- for (int j = 0; j<n; j++) {
- curX = X(i);
- curY = Y(j);
- curSide = min(W-curX, H-curY);
- for (int k=0; k<n; k++) {
- if (X(k) > curX && Y(k) > curY) {
- if (max(X(k) - curX,Y(k) - curY) < curSide)
- curSide = max(X(k) - curX,Y(k) - curY);
- }
- }
- if (resSide < curSide) {
- resSide = curSide;
- resX = curX;
- resY = curY;
- }
- }
- }
- cout<<resX<<' '<<resY<<' '<<resSide;
- }
- int main()
- {
- freopen("input.txt","r",stdin);
- freopen("output.txt","w",stdout);
- input();
- solve();
- return 0;
- }
Editing is locked.