Tích và tổng


Submit solution

Points: 1.5 (partial)
Time limit: 1.0s
Memory limit: 67M

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

Để giúp em gái mình - Kora học phép cộng và nhân, Koi nghĩ ra trò chơi như sau: Cậu tạo một tập thẻ, mỗi thẻ ghi một số tự nhiên; mỗi lượt Kora được bốc hai thẻ bất kì, thực hiện nhân hoặc cộng hai con số trên các thẻ đó, ghi kết quả lên một thẻ mới và đặt vào tập thẻ cũ, cứ thế cho tới khi chỉ còn một thẻ bài. Sau một hồi chơi Kora hỏi anh trai mình con số nhỏ nhất có thể đạt được trên thẻ cuối cùng là bao nhiêu ?

Các bạn hãy lập trình giúp Koi và Kora giải đáp câu hỏi này nhé.

Đầu vào

Dòng đầu chứa số tự nhiên \(n\) \((1 \le n \le 10^5)\) là số thẻ ban đầu mà Koi tạo.

Dòng thứ hai gồm \(n\) số tự nhiên trong đoạn \([0, 10^6]\) là các con số mà Koi ghi lên các thẻ.

Đầu ra

Con số nhỏ nhất trên thẻ mà Kora có thể đạt được khi chơi theo luật ở trên.

Subtask

\(30\%\) số test có \(n \le 10\).

Ví dụ

Đầu vào:

4
2 5 4 7

Đầu ra:

18
QDUY

Comments


  • 0
    rfcuongtay  commented on May 10, 2023, 10:12 a.m.

    xin hướng giải bài này vs ad :))))


    • 0
      quangd22RTIT  commented on May 10, 2023, 3:01 p.m.

      bạn xét: -trường hợp có số 0 trong mảng thì kết quả là 0
      -trường hợp không có 0 trong mảng thì lấy tổng các phần tử trong mảng trừ tổng các phần tử có giá trị là 1 nhé


      • 0
        rfcuongtay  commented on May 16, 2023, 2:55 a.m.

        include<bits/stdc++.h>

        using namespace std;

        int main(){ long long int n,s=0,d=0; scanf("%lld", &n); long long int a[n+5];

        for(int i=0;i<n;i++) scanf("%lld", a+i);
        for(int i=0;i<n;i++){
            if(a[i]==0){
                s = 0;  
            } else {
        
                if(a[i]==1){ d++; 
                } 
                s+=a[i]; 
            } 
        }
        if(s-d){
        
        printf("%lld", s-d);} else printf("1");

        } code vẫn sai ae ạ