Vị trí cân bằng


Submit solution

Points: 2
Time limit: 1.0s
Memory limit: 977M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Phép toán tính tổng luôn luôn là phép tính đau đầu những người lập trình. Hôm nay Tichpx dạy phép tính tổng của dãy số, hết tính từ bên trái sang bên phải, lại tính từ bên phải sang bên trái, Trong quá trình tính toán Tichpx thấy những vị trí thú vị nếu tính tổng những số bên trái nó kể cả nó thì bằng tổng những số bên phải nó kể cả nó, những phần tử như vậy được gọi là phần tử cân bằng

Bài toán đặt ra là cho một dãy số nguyên bạn hãy xuất ra màn hình tất cả những vị trí cân bằng như vậy và tổng số có bao nhiêu vị trí cân bằng

Input

Dòng đầu chứa số nguyên dương n là số phần tử của dãy \((1<= n <= 10^6)\)

Dòng tiếp theo chứa các phần tử của dãy \(a_1, a_2, ... a_n \)là các số nguyên có giá trị tuyệt đối không vượt quá 10^4

Output

Dòng đầu chứa các vị trí cân bằng cách nhau bởi một khoảng trống (nếu có)

Dòng tiếp theo là số vị trí cân bằng trong dãy

Ví dụ 1

Input

6
0 -1 0 1 0 0

Output

1 5 6
3

Ví dụ 2

Input

6
1 2 3 4 5 6

Output

0
tichpx

Comments


  • 1
    hoanghai_CNTT6_K61  commented on Nov. 18, 2021, 5:58 p.m.

    giúp em fix mấy lỗi rte với ạ :(

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        long long n,a[100000],dem=0,st,sp;
        cin>>n;
        for (int i=0 ; i<n ; i++)
        {
            cin>>a[i];
        }
        for (int i=0 ; i<n ; i++)
        {
            st=0;
            sp=0;
            for (int j=0 ; j<=i ; j++)
                st+=a[j];
    //          cout<<"st= "<<st<<endl;
            for (int k=i ; k<n ; k++)
                {
                    sp+=a[k];
    //              cout<<"sp= "<<sp<<endl;
                }
            if (st==sp) dem++;
            if (st==sp) cout<<i+1<<" ";
        }
        if (dem!=0)
            cout<<endl;
        cout<<dem;
    }

    • 1
      sguenm  commented on Nov. 19, 2021, 2:19 a.m. edit 2

      đề bài n<=10^6 mà b tạo mảng 10^5 phần tử nên RTE


  • 1
    J_K_Pain  commented on April 18, 2019, 9:22 a.m.

    trùng với "Vị trí cân bằng rồi thầy ạ"