#include <thread>
#include <iostream>
#include <mutex>
#include <numeric>
#include <vector>
#include <condition_variable>
using namespace std;
int main(){
mutex m;
condition_variable cond;
vector<int> vec;
thread t([&](){
while(true){
unique_lock<mutex> lock(m);
//m.lock();
while(vec.size()<5) cond.wait(lock);// wait
cout << "sum:" << accumulate(vec.begin(),vec.end(),0) << endl;
vec.clear();
//m.unlock();
}
});
int n;
while(cin>>n){
lock_guard<mutex> lock(m);
// m.lock();
vec.push_back(n);
if(vec.size()>=5) cond.notify_one();// signal
// m.unlock();
}
t.join();
}