Cod sursa(job #484045)

Utilizator SpiderManSimoiu Robert SpiderMan Data 11 septembrie 2010 18:38:54
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
# include <algorithm>
using namespace std ;

# define x first
# define y second

typedef long long ll ;
const char FIN[] = "bilute.in", FOU[] = "bilute.out" ;
const int MAX = 30005 ;

pair < char, char > V[MAX] ;
ll sum[MAX], X[MAX] ;
int N ;

void solve ( void ) {
    int rez = 1 ;
    for ( int i = 2; i <= N; ++i ) {
        X[1] += ( i - 1 ) * V[i].x + V[i].x * V[i].y ;
    }
    for ( int i = 2; i <= N; ++i ) {
        X[i] = X[i - 1] + V[i - 1].x * V[i - 1].y - V[i].x * V[i].y + sum[i - 1] - sum[N] + sum[i - 1] ;
    }
    for ( int i = 2; i <= N; ++i ) {
        if ( X[i] < X[rez] ) {
            rez = i ;
        }
    }

    fprintf ( fopen ( FOU, "w" ) , "%d %lld", rez, X[rez] ) ;
}

int main ( void ) {
    freopen ( FIN, "r", stdin ) ;

    scanf ( "%d", &N ) ;
    for ( int i = 1, x, y; i <= N; ++i ) {
        scanf ( "%d %d", &x, &y ) ;
        V[i].x = x, V[i].y = y ;
        sum[i] = sum[i - 1] + V[i].x ;
    }

    solve () ;
}