ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 2030. Защитная Бэкап-Система

Runtime Error (access violation) #17
Послано Majin Boo 1 дек 2015 02:10
Why Runtime Error?

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    unsigned short n, m;
    scanf("%hu", &n);
    vector <unsigned long long> bytes(n);
    vector <vector<unsigned short> > red(n);
    for(unsigned short i=0;i<n;i++) scanf("%llu", &bytes[i]);
    for(unsigned short i=1;i<n;i++) {
        unsigned short x, y;
        scanf("%hu %hu", &x, &y);
        red[x-1].push_back(y);
        red[y-1].push_back(x); }
    if(n>1) {
        for(unsigned short i=0;i<red.size();i++) sort(red[i].begin(), red[i].end());
        for(unsigned short i=0;i<red.size();i++) {
            for(unsigned short j=0;j<red[i].size()-1;j++) {
                if(red[i][j]==red[i][j+1]) {
                    for(unsigned short pos=j+1;pos<red[i].size()-1;pos++) red[i][pos] = red[i][pos+1];
                    red[i].pop_back(); }
            }
        }
    }
    scanf("%hu", &m);
    for(int i=0;i<m;i++) {
        unsigned short v, t;
        scanf("%hu %hu", &t, &v);
        if(t==1) {
            for(unsigned j=0;j<red[v-1].size();j++) bytes[red[v-1][j]-1] += bytes[v-1]; }
        if(t==2) printf("%llu\n", bytes[v-1]%1000000007); }
}